syzbot


INFO: rcu detected stall in wg_packet_handshake_send_worker

Status: upstream: reported on 2024/06/01 01:47
Reported-by: syzbot+d6a7392162003e638552@syzkaller.appspotmail.com
First crash: 17d, last: 17d
Similar bugs (8)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: rcu detected stall in wg_packet_handshake_send_worker (4) wireguard 1 336d 336d 0/27 auto-obsoleted due to no activity on 2023/10/15 22:40
upstream INFO: rcu detected stall in wg_packet_handshake_send_worker net 1 1511d 1511d 0/27 auto-closed as invalid on 2020/07/28 10:33
linux-5.15 INFO: rcu detected stall in wg_packet_handshake_send_worker 1 71d 71d 0/3 upstream: reported on 2024/04/07 21:11
upstream INFO: rcu detected stall in wg_packet_handshake_send_worker (5) wireguard 1 200d 200d 0/27 auto-obsoleted due to no activity on 2024/02/29 10:43
upstream INFO: rcu detected stall in wg_packet_handshake_send_worker (3) kernel 1 545d 545d 0/27 auto-obsoleted due to no activity on 2023/04/12 00:54
upstream INFO: rcu detected stall in wg_packet_handshake_send_worker (2) net 1 1417d 1417d 0/27 auto-closed as invalid on 2020/10/29 22:12
android-5-15 BUG: soft lockup in wg_packet_handshake_send_worker 2 334d 340d 0/2 auto-obsoleted due to no activity on 2023/10/18 09:06
android-5-10 BUG: soft lockup in wg_packet_handshake_send_worker 6 306d 346d 0/2 auto-obsoleted due to no activity on 2023/11/15 02:30

Sample crash report:
rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
rcu: 	1-...!: (1 GPs behind) idle=fc7c/1/0x4000000000000000 softirq=15468/15470 fqs=33
	(detected by 0, t=10504 jiffies, g=18677, q=1332 ncpus=2)
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 9 Comm: kworker/u4:0 Not tainted 6.1.92-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
Workqueue: wg-kex-wg1 wg_packet_handshake_send_worker
RIP: 0010:__sanitizer_cov_trace_pc+0x0/0x60 kernel/kcov.c:203
Code: e8 25 00 00 00 0f 0b 0f 1f 00 53 48 89 fb e8 17 00 00 00 48 8b 3d 58 fe e8 0c 48 89 de 5b e9 97 a8 56 00 cc cc cc cc cc cc cc <48> 8b 04 24 65 48 8b 0d e4 e1 77 7e 65 8b 15 e5 e1 77 7e f7 c2 00
RSP: 0018:ffffc900001e0bd8 EFLAGS: 00000046
RAX: 0000000000010002 RBX: 0000000000000001 RCX: ffffffff88807cbd
RDX: ffff88813fe78000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffffc900001e0cb0 R08: ffffffff88807ce6 R09: ffffed100ec7622c
R10: 0000000000000000 R11: dffffc0000000001 R12: ffff8880763b1000
R13: dffffc0000000000 R14: 1ffff9200003c180 R15: 17d4be12ad3aa000
FS:  0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f53c9ed8275 CR3: 000000000ce8e000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <NMI>
 </NMI>
 <IRQ>
 __netif_schedule+0xc0/0x310 net/core/dev.c:3111
 advance_sched+0x772/0x970 net/sched/sch_taprio.c:754
 __run_hrtimer kernel/time/hrtimer.c:1686 [inline]
 __hrtimer_run_queues+0x5e5/0xe50 kernel/time/hrtimer.c:1750
 hrtimer_interrupt+0x392/0x980 kernel/time/hrtimer.c:1812
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1095 [inline]
 __sysvec_apic_timer_interrupt+0x156/0x580 arch/x86/kernel/apic/apic.c:1112
 sysvec_apic_timer_interrupt+0x8c/0xb0 arch/x86/kernel/apic/apic.c:1106
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:653
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:152 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xd4/0x130 kernel/locking/spinlock.c:194
Code: 9c 8f 44 24 20 42 80 3c 23 00 74 08 4c 89 f7 e8 f2 c1 4c f7 f6 44 24 21 02 75 4e 41 f7 c7 00 02 00 00 74 01 fb bf 01 00 00 00 <e8> d7 08 c9 f6 65 8b 05 48 24 6d 75 85 c0 74 3f 48 c7 04 24 0e 36
RSP: 0018:ffffc900000e77e0 EFLAGS: 00000206
RAX: d7b360570ef51400 RBX: 1ffff9200001cf00 RCX: ffffffff816acf0a
RDX: dffffc0000000000 RSI: ffffffff8aec01c0 RDI: 0000000000000001
RBP: ffffc900000e7868 R08: dffffc0000000000 R09: fffffbfff2093861
R10: 0000000000000000 R11: dffffc0000000001 R12: dffffc0000000000
R13: 1ffff9200001cefc R14: ffffc900000e7800 R15: 0000000000000246
 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline]
 get_partial_node+0x426/0x450 mm/slub.c:2247
 get_partial mm/slub.c:2325 [inline]
 ___slab_alloc+0x9b2/0x1270 mm/slub.c:3175
 __slab_alloc mm/slub.c:3279 [inline]
 slab_alloc_node mm/slub.c:3364 [inline]
 __kmem_cache_alloc_node+0x19f/0x260 mm/slub.c:3437
 __do_kmalloc_node mm/slab_common.c:954 [inline]
 __kmalloc_node_track_caller+0xa0/0x220 mm/slab_common.c:975
 kmalloc_reserve net/core/skbuff.c:446 [inline]
 __alloc_skb+0x135/0x670 net/core/skbuff.c:515
 alloc_skb include/linux/skbuff.h:1271 [inline]
 wg_socket_send_buffer_to_peer+0x34/0x170 drivers/net/wireguard/socket.c:192
 wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:40 [inline]
 wg_packet_handshake_send_worker+0x1d9/0x310 drivers/net/wireguard/send.c:51
 process_one_work+0x8a9/0x11d0 kernel/workqueue.c:2292
 worker_thread+0xa47/0x1200 kernel/workqueue.c:2439
 kthread+0x28d/0x320 kernel/kthread.c:376
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
 </TASK>
rcu: rcu_preempt kthread starved for 10338 jiffies! g18677 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=0
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:25816 pid:16    ppid:2      flags:0x00004000
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5245 [inline]
 __schedule+0x142d/0x4550 kernel/sched/core.c:6558
 schedule+0xbf/0x180 kernel/sched/core.c:6634
 schedule_timeout+0x1b9/0x300 kernel/time/timer.c:1965
 rcu_gp_fqs_loop+0x2d2/0x1150 kernel/rcu/tree.c:1706
 rcu_gp_kthread+0xa3/0x3b0 kernel/rcu/tree.c:1905
 kthread+0x28d/0x320 kernel/kthread.c:376
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
 </TASK>
rcu: Stack dump where RCU GP kthread last ran:
CPU: 0 PID: 5079 Comm: kworker/u4:10 Not tainted 6.1.92-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
Workqueue: events_unbound toggle_allocation_gate
RIP: 0010:csd_lock_wait kernel/smp.c:424 [inline]
RIP: 0010:smp_call_function_many_cond+0x1fb0/0x3460 kernel/smp.c:998
Code: 2f 44 89 ee 83 e6 01 31 ff e8 ec 42 0b 00 41 83 e5 01 49 bd 00 00 00 00 00 fc ff df 75 0a e8 77 3f 0b 00 e9 1b ff ff ff f3 90 <42> 0f b6 04 2b 84 c0 75 14 41 f7 07 01 00 00 00 0f 84 fe fe ff ff
RSP: 0018:ffffc900055475a0 EFLAGS: 00000293
RAX: ffffffff817f4dfb RBX: 1ffff110173281b1 RCX: ffff888075261dc0
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffffc90005547980 R08: ffffffff817f4dc4 R09: fffffbfff2093845
R10: 0000000000000000 R11: dffffc0000000001 R12: 0000000800000000
R13: dffffc0000000000 R14: 0000000000000001 R15: ffff8880b9940d88
FS:  0000000000000000(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fecdf0e5000 CR3: 000000000ce8e000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <IRQ>
 </IRQ>
 <TASK>
 on_each_cpu_cond_mask+0x3b/0x80 kernel/smp.c:1166
 on_each_cpu include/linux/smp.h:71 [inline]
 text_poke_sync arch/x86/kernel/alternative.c:1334 [inline]
 text_poke_bp_batch+0x5f9/0x940 arch/x86/kernel/alternative.c:1596
 text_poke_flush arch/x86/kernel/alternative.c:1725 [inline]
 text_poke_finish+0x16/0x30 arch/x86/kernel/alternative.c:1732
 arch_jump_label_transform_apply+0x13/0x20 arch/x86/kernel/jump_label.c:146
 static_key_enable_cpuslocked+0x12e/0x250 kernel/jump_label.c:177
 static_key_enable+0x16/0x20 kernel/jump_label.c:190
 toggle_allocation_gate+0xbf/0x480 mm/kfence/core.c:804
 process_one_work+0x8a9/0x11d0 kernel/workqueue.c:2292
 worker_thread+0xa47/0x1200 kernel/workqueue.c:2439
 kthread+0x28d/0x320 kernel/kthread.c:376
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/06/01 01:47 linux-6.1.y 88690811da69 3113787f .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan INFO: rcu detected stall in wg_packet_handshake_send_worker
* Struck through repros no longer work on HEAD.