rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: rcu: 0-...!: (1 GPs behind) idle=b85/1/0x4000000000000000 softirq=75874/75875 fqs=2 (detected by 1, t=10502 jiffies, g=112205, q=286) Sending NMI from CPU 1 to CPUs 0: NMI backtrace for cpu 0 CPU: 0 PID: 55 Comm: kworker/u4:3 Not tainted 5.17.0-syzkaller-13993-g88e6c0207623 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: bat_events batadv_nc_worker RIP: 0010:trace_lock_acquire+0x43/0x190 include/trace/events/lock.h:13 Code: 08 0f 83 88 00 00 00 89 c3 48 89 d8 48 c1 e8 06 48 8d 3c c5 68 3b 21 8e be 08 00 00 00 e8 75 b6 70 00 48 0f a3 1d 85 16 ba 0c <73> 21 65 83 05 9b 4a 9b 7e 01 48 8b 05 9c ed a6 0c e8 07 45 08 00 RSP: 0018:ffffc90000007ab8 EFLAGS: 00000057 RAX: 0000000000000001 RBX: 0000000000000000 RCX: ffffffff816724db RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffff8e213b68 RBP: ffffc90000007c58 R08: dffffc0000000000 R09: fffffbfff1c4276e R10: fffffbfff1c4276e R11: 0000000000000000 R12: 0000000000000000 R13: 1ffff92000000f68 R14: 0000000000000000 R15: dffffc0000000000 FS: 0000000000000000(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffc0bb2dff8 CR3: 000000001d9be000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: lock_acquire+0xa5/0x4d0 kernel/locking/lockdep.c:5612 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:349 [inline] advance_sched+0x4c/0x930 net/sched/sch_taprio.c:714 __run_hrtimer kernel/time/hrtimer.c:1685 [inline] __hrtimer_run_queues+0x50b/0xa60 kernel/time/hrtimer.c:1749 hrtimer_interrupt+0x3b3/0x1040 kernel/time/hrtimer.c:1811 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1086 [inline] __sysvec_apic_timer_interrupt+0xf9/0x270 arch/x86/kernel/apic/apic.c:1103 sysvec_apic_timer_interrupt+0x8c/0xb0 arch/x86/kernel/apic/apic.c:1097 asm_sysvec_apic_timer_interrupt+0x12/0x20 RIP: 0010:should_resched arch/x86/include/asm/preempt.h:103 [inline] RIP: 0010:__local_bh_enable_ip+0x16b/0x1f0 kernel/softirq.c:390 Code: 8a e8 09 e2 d6 08 65 66 8b 05 e1 44 b2 7e 66 85 c0 75 57 bf 01 00 00 00 e8 b2 18 0a 00 e8 4d 61 3b 00 fb 65 8b 05 4d 22 b1 7e <85> c0 75 05 e8 84 0b af ff 48 c7 44 24 20 0e 36 e0 45 49 c7 04 1c RSP: 0018:ffffc900013dfaa0 EFLAGS: 00000286 RAX: 0000000080000000 RBX: 1ffff9200027bf58 RCX: ffffffff8167a751 RDX: dffffc0000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffc900013dfb50 R08: dffffc0000000000 R09: fffffbfff1f86d9d R10: fffffbfff1f86d9d R11: 0000000000000000 R12: dffffc0000000000 R13: 1ffff9200027bf5c R14: ffffc900013dfae0 R15: 0000000000000201 spin_unlock_bh include/linux/spinlock.h:394 [inline] batadv_nc_purge_paths+0x35f/0x3f0 net/batman-adv/network-coding.c:471 batadv_nc_worker+0x2da/0x5b0 net/batman-adv/network-coding.c:720 process_one_work+0x83c/0x11a0 kernel/workqueue.c:2289 worker_thread+0xa6c/0x1290 kernel/workqueue.c:2436 kthread+0x2a3/0x2d0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 rcu: rcu_preempt kthread starved for 10498 jiffies! g112205 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=1 rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior. rcu: RCU grace-period kthread stack dump: task:rcu_preempt state:R running task stack:26480 pid: 16 ppid: 2 flags:0x00004000 Call Trace: context_switch kernel/sched/core.c:5073 [inline] __schedule+0x937/0x1090 kernel/sched/core.c:6382 schedule+0xeb/0x1b0 kernel/sched/core.c:6454 schedule_timeout+0x1b9/0x300 kernel/time/timer.c:1881 rcu_gp_fqs_loop+0x1fd/0x770 kernel/rcu/tree.c:1971 rcu_gp_kthread+0xa5/0x350 kernel/rcu/tree.c:2144 kthread+0x2a3/0x2d0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 rcu: Stack dump where RCU GP kthread last ran: NMI backtrace for cpu 1 CPU: 1 PID: 3717 Comm: kworker/u4:7 Not tainted 5.17.0-syzkaller-13993-g88e6c0207623 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events_unbound toggle_allocation_gate Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1dc/0x2d8 lib/dump_stack.c:106 nmi_cpu_backtrace+0x45f/0x490 lib/nmi_backtrace.c:111 nmi_trigger_cpumask_backtrace+0x16a/0x280 lib/nmi_backtrace.c:62 trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline] rcu_check_gp_kthread_starvation+0x1ff/0x270 kernel/rcu/tree_stall.h:490 print_other_cpu_stall kernel/rcu/tree_stall.h:595 [inline] check_cpu_stall kernel/rcu/tree_stall.h:741 [inline] rcu_pending kernel/rcu/tree.c:3923 [inline] rcu_sched_clock_irq+0x24e1/0x2cf0 kernel/rcu/tree.c:2625 update_process_times+0x197/0x200 kernel/time/timer.c:1785 tick_sched_handle kernel/time/tick-sched.c:243 [inline] tick_sched_timer+0x376/0x540 kernel/time/tick-sched.c:1473 __run_hrtimer kernel/time/hrtimer.c:1685 [inline] __hrtimer_run_queues+0x4cb/0xa60 kernel/time/hrtimer.c:1749 hrtimer_interrupt+0x3b3/0x1040 kernel/time/hrtimer.c:1811 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1086 [inline] __sysvec_apic_timer_interrupt+0xf9/0x270 arch/x86/kernel/apic/apic.c:1103 sysvec_apic_timer_interrupt+0x8c/0xb0 arch/x86/kernel/apic/apic.c:1097 asm_sysvec_apic_timer_interrupt+0x12/0x20 RIP: 0010:csd_lock_wait kernel/smp.c:440 [inline] RIP: 0010:smp_call_function_many_cond+0xc22/0xe10 kernel/smp.c:969 Code: 83 e6 01 31 ff e8 1e c3 0b 00 41 83 e7 01 49 bf 00 00 00 00 00 fc ff df 75 0e e8 f9 be 0b 00 eb 4c 0f 1f 80 00 00 00 00 f3 90 <42> 0f b6 04 3b 84 c0 75 11 41 f7 45 00 01 00 00 00 74 2b e8 d6 be RSP: 0018:ffffc90004387820 EFLAGS: 00000293 RAX: ffffffff817a486a RBX: 1ffff11017348405 RCX: ffff88801b2a3a00 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffffc90004387960 R08: ffffffff817a4832 R09: ffffffff8457eca0 R10: 0000000000000009 R11: ffff88801b2a3a00 R12: 0000000000000000 R13: ffff8880b9a42028 R14: ffff8880b9b3ac80 R15: dffffc0000000000 on_each_cpu_cond_mask+0x3b/0x80 kernel/smp.c:1135 on_each_cpu include/linux/smp.h:71 [inline] text_poke_sync arch/x86/kernel/alternative.c:1184 [inline] text_poke_bp_batch+0x309/0x920 arch/x86/kernel/alternative.c:1372 text_poke_flush arch/x86/kernel/alternative.c:1542 [inline] text_poke_finish+0x16/0x30 arch/x86/kernel/alternative.c:1549 arch_jump_label_transform_apply+0x13/0x20 arch/x86/kernel/jump_label.c:146 static_key_enable_cpuslocked+0x12d/0x250 kernel/jump_label.c:177 static_key_enable+0x16/0x20 kernel/jump_label.c:190 toggle_allocation_gate+0xbf/0x460 mm/kfence/core.c:785 process_one_work+0x83c/0x11a0 kernel/workqueue.c:2289 worker_thread+0xa6c/0x1290 kernel/workqueue.c:2436 kthread+0x2a3/0x2d0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 ---------------- Code disassembly (best guess): 0: 08 0f or %cl,(%rdi) 2: 83 88 00 00 00 89 c3 orl $0xffffffc3,-0x77000000(%rax) 9: 48 89 d8 mov %rbx,%rax c: 48 c1 e8 06 shr $0x6,%rax 10: 48 8d 3c c5 68 3b 21 lea -0x71dec498(,%rax,8),%rdi 17: 8e 18: be 08 00 00 00 mov $0x8,%esi 1d: e8 75 b6 70 00 callq 0x70b697 22: 48 0f a3 1d 85 16 ba bt %rbx,0xcba1685(%rip) # 0xcba16af 29: 0c * 2a: 73 21 jae 0x4d <-- trapping instruction 2c: 65 83 05 9b 4a 9b 7e addl $0x1,%gs:0x7e9b4a9b(%rip) # 0x7e9b4acf 33: 01 34: 48 8b 05 9c ed a6 0c mov 0xca6ed9c(%rip),%rax # 0xca6edd7 3b: e8 07 45 08 00 callq 0x84547