[v6.1] INFO: rcu detected stall in wg_packet_handshake_send_worker

0 views
Skip to first unread message

syzbot

unread,
May 31, 2024, 9:47:27 PMMay 31
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 88690811da69 Linux 6.1.92
git tree: linux-6.1.y
console output: https://syzkaller.appspot.com/x/log.txt?x=178b06f2980000
kernel config: https://syzkaller.appspot.com/x/.config?x=ee57a613e7f5bf6c
dashboard link: https://syzkaller.appspot.com/bug?extid=d6a7392162003e638552
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/8b45ba80e02a/disk-88690811.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/ca769d644800/vmlinux-88690811.xz
kernel image: https://storage.googleapis.com/syzbot-assets/26a1d8aecbf6/bzImage-88690811.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+d6a739...@syzkaller.appspotmail.com

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>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
Reply all
Reply to author
Forward
0 new messages