syzbot


BUG: soft lockup in wg_expired_send_persistent_keepalive

Status: premoderation: reported on 2024/08/08 01:58
Reported-by: syzbot+6b027d2a173a50701538@syzkaller.appspotmail.com
First crash: 51d, last: 51d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: rcu detected stall in wg_expired_send_persistent_keepalive kvm 3 886d 886d 0/28 auto-closed as invalid on 2022/06/25 10:14

Sample crash report:
watchdog: BUG: soft lockup - CPU#1 stuck for 123s! [syz.0.1253:5587]
Modules linked in:
CPU: 1 PID: 5587 Comm: syz.0.1253 Not tainted 5.10.222-syzkaller-01494-gfd58936f3c1f #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024
RIP: 0010:native_restore_fl arch/x86/include/asm/irqflags.h:41 [inline]
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:84 [inline]
RIP: 0010:__slab_alloc+0x6b/0xa0 mm/slub.c:2832
Code: 41 89 c5 83 f8 08 73 40 4a 03 1c ed b0 36 dc 85 4c 89 e7 44 89 fe 48 8b 55 c0 48 89 d9 e8 fd d7 ff ff 4c 89 75 b8 ff 75 b8 9d <65> 48 8b 0c 25 28 00 00 00 48 3b 4d d0 75 20 48 83 c4 20 5b 41 5c
RSP: 0018:ffffc90000170c00 EFLAGS: 00000286
RAX: ffff88812c9743c0 RBX: ffff8881f715c5a0 RCX: 3844972c8188ffff
RDX: ffff88812c974640 RSI: 0000000000000000 RDI: ffff88812c974c48
RBP: ffffc90000170c48 R08: ffffffff82b1851a R09: ffff88812c974c38
R10: 0000000000000000 R11: dffffc0000000001 R12: ffff888107d9cc00
R13: 0000000000000001 R14: 0000000000000286 R15: 0000000000000a20
FS:  0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000200012c0 CR3: 000000014bed5000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
 <IRQ>
 slab_alloc_node mm/slub.c:2913 [inline]
 slab_alloc mm/slub.c:2955 [inline]
 kmem_cache_alloc+0x1b9/0x2e0 mm/slub.c:2960
 kmem_cache_alloc_node include/linux/slab.h:423 [inline]
 __alloc_skb+0x80/0x510 net/core/skbuff.c:200
 alloc_skb include/linux/skbuff.h:1126 [inline]
 wg_packet_send_keepalive+0x63/0x1d0 drivers/net/wireguard/send.c:226
 wg_expired_send_persistent_keepalive+0x53/0x80 drivers/net/wireguard/timers.c:141
 call_timer_fn+0x3b/0x2d0 kernel/time/timer.c:1450
 expire_timers kernel/time/timer.c:1495 [inline]
 __run_timers+0x72a/0xa10 kernel/time/timer.c:1789
 run_timer_softirq+0x69/0xf0 kernel/time/timer.c:1802
 __do_softirq+0x268/0x5bb kernel/softirq.c:309
 asm_call_irq_on_stack+0xf/0x20
 </IRQ>
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
 do_softirq_own_stack+0x60/0x80 arch/x86/kernel/irq_64.c:77
 invoke_softirq kernel/softirq.c:405 [inline]
 __irq_exit_rcu+0x128/0x150 kernel/softirq.c:435
 irq_exit_rcu+0x9/0x10 kernel/softirq.c:447
 sysvec_apic_timer_interrupt+0xbf/0xe0 arch/x86/kernel/apic/apic.c:1094
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:635
RIP: 0010:unwind_get_return_address+0x8/0x90 arch/x86/kernel/unwind_frame.c:15
Code: 86 80 e1 07 80 c1 03 38 c1 7c af 48 c7 c7 60 a5 6c 86 e8 6b 2f 76 00 eb a1 cc cc cc cc cc cc cc cc cc 55 48 89 e5 41 57 41 56 <53> 48 89 fb 49 be 00 00 00 00 00 fc ff df 48 89 f8 48 c1 e8 03 42
RSP: 0018:ffffc90000d373e0 EFLAGS: 00000202
RAX: ffffc90000d37490 RBX: ffffc90000d37400 RCX: 1ffff920001a6e87
RDX: 1ffff920001a6e82 RSI: ffffc90000d37490 RDI: ffffc90000d37400
RBP: ffffc90000d373f0 R08: dffffc0000000001 R09: ffffc90000d37400
R10: 0000000000000000 R11: dffffc0000000001 R12: ffff88812ff7bb40
R13: ffffffff8159b260 R14: ffffc90000d374e0 R15: 0000000000000000
 arch_stack_walk+0xf3/0x140 arch/x86/kernel/stacktrace.c:26
 stack_trace_save+0x113/0x1c0 kernel/stacktrace.c:121
 save_stack+0x97/0x240 mm/page_owner.c:146
 __reset_page_owner+0x36/0x150 mm/page_owner.c:174
 reset_page_owner include/linux/page_owner.h:28 [inline]
 free_pages_prepare mm/page_alloc.c:1349 [inline]
 free_pcp_prepare mm/page_alloc.c:1421 [inline]
 free_unref_page_prepare+0x2ae/0x2d0 mm/page_alloc.c:3336
 free_unref_page mm/page_alloc.c:3391 [inline]
 free_the_page+0x9e/0x370 mm/page_alloc.c:5407
 __free_pages+0x67/0xc0 mm/page_alloc.c:5418
 __vunmap+0x7bc/0x8f0 mm/vmalloc.c:2301
 __vfree mm/vmalloc.c:2349 [inline]
 vfree+0x5c/0x80 mm/vmalloc.c:2380
 kcov_put kernel/kcov.c:408 [inline]
 kcov_close+0x2b/0x50 kernel/kcov.c:510
 __fput+0x33d/0x7b0 fs/file_table.c:281
 ____fput+0x15/0x20 fs/file_table.c:314
 task_work_run+0x129/0x190 kernel/task_work.c:165
 exit_task_work include/linux/task_work.h:32 [inline]
 do_exit+0xc83/0x2a50 kernel/exit.c:863
 do_group_exit+0x141/0x310 kernel/exit.c:985
 get_signal+0x10a0/0x1410 kernel/signal.c:2782
 arch_do_signal_or_restart+0xbd/0x17c0 arch/x86/kernel/signal.c:805
 handle_signal_work kernel/entry/common.c:145 [inline]
 exit_to_user_mode_loop+0x9b/0xd0 kernel/entry/common.c:169
 exit_to_user_mode_prepare kernel/entry/common.c:199 [inline]
 irqentry_exit_to_user_mode+0x4e/0x80 kernel/entry/common.c:287
 irqentry_exit+0x12/0x60 kernel/entry/common.c:375
 sysvec_apic_timer_interrupt+0xcb/0xe0 arch/x86/kernel/apic/apic.c:1094
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:635
RIP: 0033:0x7f558c4b4e03
Code: Unable to access opcode bytes at RIP 0x7f558c4b4dd9.
RSP: 002b:00007f558b251f70 EFLAGS: 00000202
RAX: 0000000000000000 RBX: 00007f558c662a52 RCX: 00007f558c65aac0
RDX: 00000000000050ac RSI: 0000000000000001 RDI: 00007f558c662a52
RBP: 00007f558c65aac0 R08: 0000000000000000 R09: 00007ffea878b0b0
R10: 0000000000041334 R11: 0000000000000544 R12: 0000000000000000
R13: 0000000000000000 R14: 00007f558c782058 R15: 00007ffea8737138
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 6957 Comm: kworker/0:6 Not tainted 5.10.222-syzkaller-01494-gfd58936f3c1f #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024
Workqueue: wg-kex-wg0 wg_packet_handshake_receive_worker
RIP: 0010:arch_static_branch arch/x86/include/asm/jump_label.h:25 [inline]
RIP: 0010:static_key_false include/linux/jump_label.h:221 [inline]
RIP: 0010:native_write_msr arch/x86/include/asm/msr.h:162 [inline]
RIP: 0010:wrmsr arch/x86/include/asm/msr.h:273 [inline]
RIP: 0010:native_apic_msr_write+0x39/0x50 arch/x86/include/asm/apic.h:208
Code: 74 05 83 ff 30 75 12 5d c3 81 ff d0 00 00 00 74 f6 81 ff e0 00 00 00 74 ee c1 ef 04 81 c7 00 08 00 00 89 f9 89 f0 31 d2 0f 30 <0f> 1f 44 00 00 eb d6 89 f6 31 d2 e8 f7 93 3e 01 5d c3 0f 1f 44 00
RSP: 0018:ffffc90000007e00 EFLAGS: 00000046
RAX: 00000000000000b9 RBX: ffffffff85dc3988 RCX: 0000000000000838
RDX: 0000000000000000 RSI: 00000000000000b9 RDI: 0000000000000838
RBP: ffffc90000007e00 R08: ffffffff815df0f1 R09: ffffffff815df07d
R10: 0000000000000002 R11: ffff88810f3593c0 R12: 0000000000000b9d
R13: dffffc0000000000 R14: 00000000000000b9 R15: dffffc0000000000
FS:  0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffc145f9000 CR3: 000000010ce6e000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
 <NMI>
 </NMI>
 <IRQ>
 apic_write arch/x86/include/asm/apic.h:396 [inline]
 lapic_next_event+0x5f/0x70 arch/x86/kernel/apic/apic.c:466
 clockevents_program_event+0x1a7/0x2c0 kernel/time/clockevents.c:334
 tick_program_event+0x9f/0x120 kernel/time/tick-oneshot.c:44
 hrtimer_interrupt+0x4cf/0x8b0 kernel/time/hrtimer.c:1722
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1083 [inline]
 __sysvec_apic_timer_interrupt+0xfd/0x3c0 arch/x86/kernel/apic/apic.c:1100
 asm_call_irq_on_stack+0xf/0x20
 </IRQ>
 __run_sysvec_on_irqstack arch/x86/include/asm/irq_stack.h:37 [inline]
 run_sysvec_on_irqstack_cond arch/x86/include/asm/irq_stack.h:89 [inline]
 sysvec_apic_timer_interrupt+0x85/0xe0 arch/x86/kernel/apic/apic.c:1094
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:635
RIP: 0010:hmac+0x413/0x9a0 drivers/net/wireguard/noise.c:328
Code: 00 00 00 e8 bf ba 69 ff 4c 89 e7 48 8d b4 24 e0 01 00 00 e8 2f bd 69 ff 41 bc 03 00 00 00 48 89 d8 48 c1 e8 03 42 0f b6 04 30 <84> c0 75 78 42 80 b4 24 7d 01 00 00 6a 48 8d 7b 01 48 89 f8 48 c1
RSP: 0018:ffffc900021cf3c0 EFLAGS: 00000a02
RAX: 0000000000000000 RBX: ffffc900021cf540 RCX: 0000000000000000
RDX: 0000000000000078 RSI: 0000000000000000 RDI: ffffc900021cf518
RBP: ffffc900021cf630 R08: dffffc0000000000 R09: ffffc900021cf4a0
R10: 0000000000000000 R11: dffffc0000000001 R12: 0000000000000003
R13: 1ffff92000439ea2 R14: dffffc0000000000 R15: 1ffff92000439e90
 kdf drivers/net/wireguard/noise.c:367 [inline]
 message_ephemeral+0x311/0x4e0 drivers/net/wireguard/noise.c:493
 wg_noise_handshake_create_response+0x28b/0xd30 drivers/net/wireguard/noise.c:692
 wg_packet_send_handshake_response+0xf0/0x1f0 drivers/net/wireguard/send.c:94
 wg_receive_handshake_packet drivers/net/wireguard/receive.c:161 [inline]
 wg_packet_handshake_receive_worker+0x56b/0x920 drivers/net/wireguard/receive.c:220
 process_one_work+0x6dc/0xbd0 kernel/workqueue.c:2301
 worker_thread+0xaea/0x1510 kernel/workqueue.c:2447
 kthread+0x34b/0x3d0 kernel/kthread.c:313
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/08/08 01:57 android13-5.10-lts fd58936f3c1f de12cf65 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-5-10-perf BUG: soft lockup in wg_expired_send_persistent_keepalive
* Struck through repros no longer work on HEAD.