====================================================== WARNING: possible circular locking dependency detected syzkaller #0 Tainted: G L ------------------------------------------------------ migration/1/27 is trying to acquire lock: ffff8880b8740998 (_T->lock){....}-{2:2}, at: rt_mutex_slowtrylock kernel/locking/rtmutex.c:1404 [inline] ffff8880b8740998 (_T->lock){....}-{2:2}, at: __rt_spin_trylock kernel/locking/spinlock_rt.c:123 [inline] ffff8880b8740998 (_T->lock){....}-{2:2}, at: rt_spin_trylock+0x56/0x2b0 kernel/locking/spinlock_rt.c:135 but task is already holding lock: ffff88802fbc68c0 (&p->pi_lock){-...}-{2:2}, at: class_raw_spinlock_irq_constructor include/linux/spinlock.h:575 [inline] ffff88802fbc68c0 (&p->pi_lock){-...}-{2:2}, at: __balance_push_cpu_stop+0x78/0x410 kernel/sched/core.c:8446 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&p->pi_lock){-...}-{2:2}: __raw_spin_lock include/linux/spinlock_api_smp.h:190 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:173 rtlock_slowlock_locked+0x1ec/0x3c20 kernel/locking/rtmutex.c:1874 rtlock_slowlock kernel/locking/rtmutex.c:1922 [inline] rtlock_lock kernel/locking/spinlock_rt.c:43 [inline] __rt_spin_lock kernel/locking/spinlock_rt.c:49 [inline] rt_spin_lock+0x165/0x400 kernel/locking/spinlock_rt.c:57 spin_lock include/linux/spinlock_rt.h:45 [inline] finish_wait+0xbe/0x1e0 kernel/sched/wait.c:395 synchronize_rcu_expedited+0x63e/0x770 kernel/rcu/tree_exp.h:981 srcu_readers_active_idx_check kernel/rcu/srcutree.c:538 [inline] try_check_zero+0x2c8/0x4c0 kernel/rcu/srcutree.c:1135 srcu_advance_state kernel/rcu/srcutree.c:1827 [inline] process_srcu+0x148/0x16f0 kernel/rcu/srcutree.c:1954 process_one_work kernel/workqueue.c:3387 [inline] process_scheduled_works+0xc3d/0x1630 kernel/workqueue.c:3470 worker_thread+0xa47/0xfb0 kernel/workqueue.c:3551 kthread+0x38b/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 -> #0 (_T->lock){....}-{2:2}: check_prev_add kernel/locking/lockdep.c:3181 [inline] check_prevs_add kernel/locking/lockdep.c:3300 [inline] validate_chain kernel/locking/lockdep.c:3924 [inline] __lock_acquire+0x1520/0x2ce0 kernel/locking/lockdep.c:5253 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5886 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:155 [inline] _raw_spin_lock_irqsave+0x40/0x60 kernel/locking/spinlock.c:181 rt_mutex_slowtrylock kernel/locking/rtmutex.c:1404 [inline] __rt_spin_trylock kernel/locking/spinlock_rt.c:123 [inline] rt_spin_trylock+0x56/0x2b0 kernel/locking/spinlock_rt.c:135 __kfree_rcu_sheaf+0xd3/0x620 mm/slub.c:6113 kfree_rcu_sheaf mm/slab_common.c:1688 [inline] kvfree_call_rcu+0xa4/0x430 mm/slab_common.c:2037 set_cpus_allowed_force+0x1bd/0x2a0 kernel/sched/core.c:2833 cpuset_cpus_allowed_fallback+0x24a/0x370 kernel/cgroup/cpuset.c:4258 select_fallback_rq+0x11e/0x200 kernel/sched/core.c:3589 __balance_push_cpu_stop+0xa1/0x410 kernel/sched/core.c:8453 cpu_stopper_thread+0x25e/0x3f0 kernel/stop_machine.c:510 smpboot_thread_fn+0x565/0xa70 kernel/smpboot.c:160 kthread+0x38b/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&p->pi_lock); lock(_T->lock); lock(&p->pi_lock); lock(_T->lock); *** DEADLOCK *** locks held by migration/1/27: 2, last CPU#1: #0: ffff88802fbc68c0 (&p->pi_lock){-...}-{2:2}, at: class_raw_spinlock_irq_constructor include/linux/spinlock.h:575 [inline] #0: ffff88802fbc68c0 (&p->pi_lock){-...}-{2:2}, at: __balance_push_cpu_stop+0x78/0x410 kernel/sched/core.c:8446 #1: ffffffff8e1c3a80 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:309 [inline] #1: ffffffff8e1c3a80 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #1: ffffffff8e1c3a80 (rcu_read_lock){....}-{1:3}, at: cpuset_cpus_allowed_fallback+0x22/0x370 kernel/cgroup/cpuset.c:4255 stack backtrace: CPU: 1 UID: 0 PID: 27 Comm: migration/1 Tainted: G L syzkaller #0 PREEMPT_{RT,(full)} Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026 Stopper: __balance_push_cpu_stop+0x0/0x410 kernel/sched/sched.h:3965 <- balance_push+0x28d/0x4f0 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_circular_bug+0x2e1/0x300 kernel/locking/lockdep.c:2059 check_noncircular+0x12e/0x150 kernel/locking/lockdep.c:2191 check_prev_add kernel/locking/lockdep.c:3181 [inline] check_prevs_add kernel/locking/lockdep.c:3300 [inline] validate_chain kernel/locking/lockdep.c:3924 [inline] __lock_acquire+0x1520/0x2ce0 kernel/locking/lockdep.c:5253 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5886 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:155 [inline] _raw_spin_lock_irqsave+0x40/0x60 kernel/locking/spinlock.c:181 rt_mutex_slowtrylock kernel/locking/rtmutex.c:1404 [inline] __rt_spin_trylock kernel/locking/spinlock_rt.c:123 [inline] rt_spin_trylock+0x56/0x2b0 kernel/locking/spinlock_rt.c:135 __kfree_rcu_sheaf+0xd3/0x620 mm/slub.c:6113 kfree_rcu_sheaf mm/slab_common.c:1688 [inline] kvfree_call_rcu+0xa4/0x430 mm/slab_common.c:2037 set_cpus_allowed_force+0x1bd/0x2a0 kernel/sched/core.c:2833 cpuset_cpus_allowed_fallback+0x24a/0x370 kernel/cgroup/cpuset.c:4258 select_fallback_rq+0x11e/0x200 kernel/sched/core.c:3589 __balance_push_cpu_stop+0xa1/0x410 kernel/sched/core.c:8453 cpu_stopper_thread+0x25e/0x3f0 kernel/stop_machine.c:510 smpboot_thread_fn+0x565/0xa70 kernel/smpboot.c:160 kthread+0x38b/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 numa_remove_cpu cpu 1 node 0: mask now 0 numa_remove_cpu cpu 1 node 1: mask now 0