syzbot


INFO: rcu detected stall in tcp_keepalive_timer

Status: upstream: reported syz repro on 2025/12/17 09:44
Reported-by: syzbot+01ff0fc02b8f416f9f5f@syzkaller.appspotmail.com
First crash: 11h44m, last: 11h44m
Bug presence (1)
Date Name Commit Repro Result
2025/12/17 upstream (ToT) ea1013c15392 syz Didn't crash
Similar bugs (4)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: rcu detected stall in tcp_keepalive_timer net 1 4 541d 579d 0/29 auto-obsoleted due to no activity on 2024/09/21 23:43
linux-4.14 INFO: rcu detected stall in tcp_keepalive_timer 1 1 2173d 2173d 0/1 auto-closed as invalid on 2020/05/04 16:06
android-5-15 BUG: soft lockup in tcp_keepalive_timer 1 12 547d 615d 0/2 auto-obsoleted due to no activity on 2024/09/11 04:23
android-54 BUG: soft lockup in tcp_keepalive_timer 1 1 549d 549d 0/2 auto-obsoleted due to no activity on 2024/09/14 02:27

Sample crash report:
rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
rcu: 	0-...!: (1 GPs behind) idle=7d7/1/0x4000000000000002 softirq=46934/46938 fqs=251 
	(detected by 1, t=10506 jiffies, g=50773, q=673)
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 10724 Comm: kworker/u4:7 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Workqueue: bat_events batadv_nc_worker
RIP: 0010:lock_is_held_type+0x3/0x190 kernel/locking/lockdep.c:5651
Code: 00 75 d6 48 c7 c7 80 1a 0b 8a 48 c7 c6 c0 1a 0b 8a e8 51 3e f5 ff 0f 0b eb bf e8 98 fd ff ff 0f 1f 84 00 00 00 00 00 55 41 57 <41> 56 41 55 41 54 53 48 83 ec 10 65 48 8b 04 25 28 00 00 00 48 89
RSP: 0018:ffffc90000007048 EFLAGS: 00000002
RAX: 1ffffffff1824101 RBX: 0000000000000001 RCX: e8ccb63fbc8a5c00
RDX: 0000000000000100 RSI: 00000000ffffffff RDI: ffffffff8c11c720
RBP: ffffc90000007190 R08: dffffc0000000000 R09: fffffbfff1ff5419
R10: fffffbfff1ff5419 R11: 1ffffffff1ff5418 R12: 1ffff92000000e1c
R13: 0000000000000008 R14: ffffc900000071e0 R15: ffffc90000007400
FS:  0000000000000000(0000) GS:ffff8880b9000000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005555611de808 CR3: 0000000076a16000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <IRQ>
 __perf_output_begin kernel/events/ring_buffer.c:170 [inline]
 perf_output_begin_forward+0x1a6/0xa30 kernel/events/ring_buffer.c:271
 __perf_event_output kernel/events/core.c:7804 [inline]
 perf_event_output_forward+0x15c/0x280 kernel/events/core.c:7822
 __perf_event_overflow+0x364/0x530 kernel/events/core.c:9515
 perf_swevent_overflow kernel/events/core.c:9591 [inline]
 perf_swevent_event+0x4ad/0x530 kernel/events/core.c:9629
 perf_tp_event+0x32c/0xb50 kernel/events/core.c:10047
 perf_trace_run_bpf_submit+0xf3/0x1c0 kernel/events/core.c:10021
 perf_trace_preemptirq_template+0x2be/0x380 include/trace/events/preemptirq.h:14
 trace_irq_enable_rcuidle+0x108/0x180 include/trace/events/preemptirq.h:40
 trace_hardirqs_on+0x57/0x80 kernel/trace/trace_preemptirq.c:44
 asm_sysvec_irq_work+0x16/0x20 arch/x86/include/asm/idtentry.h:713
RIP: 0010:rcu_read_unlock_special+0x84/0x480 kernel/rcu/tree_plugin.h:674
Code: f1 f1 f1 00 f2 f2 f2 4a 89 04 2b 66 42 c7 44 2b 09 f3 f3 42 c6 44 2b 0b f3 65 44 8b 35 ed 11 9e 7e 41 f7 c6 00 00 f0 00 74 45 <48> c7 44 24 20 0e 36 e0 45 4a c7 04 2b 00 00 00 00 66 42 c7 44 2b
RSP: 0018:ffffc90000007840 EFLAGS: 00000206
RAX: e8ccb63fbc8a5c00 RBX: 1ffff92000000f0c RCX: e8ccb63fbc8a5c00
RDX: dffffc0000000000 RSI: ffffffff8a0b1be0 RDI: ffffffff8a59e800
RBP: ffffc90000007920 R08: dffffc0000000000 R09: fffffbfff1ff542c
R10: fffffbfff1ff542c R11: 1ffffffff1ff542b R12: ffffffff8c120c00
R13: dffffc0000000000 R14: 0000000000000246 R15: 0000000000000001
 __rcu_read_unlock+0x78/0xd0 kernel/rcu/tree_plugin.h:422
 rcu_read_unlock include/linux/rcupdate.h:772 [inline]
 __ip_queue_xmit+0x1244/0x1c00 net/ipv4/ip_output.c:533
 __tcp_transmit_skb+0x1ced/0x31c0 net/ipv4/tcp_output.c:1404
 tcp_delack_timer_handler+0x32e/0x730 net/ipv4/tcp_timer.c:314
 tcp_delack_timer+0x188/0x2e0 net/ipv4/tcp_timer.c:341
 call_timer_fn+0x16c/0x530 kernel/time/timer.c:1451
 expire_timers kernel/time/timer.c:1496 [inline]
 __run_timers+0x525/0x7c0 kernel/time/timer.c:1767
 run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1780
 handle_softirqs+0x328/0x820 kernel/softirq.c:576
 do_softirq+0x13b/0x200 kernel/softirq.c:477
 </IRQ>
 <TASK>
 __local_bh_enable_ip+0x174/0x1b0 kernel/softirq.c:401
 spin_unlock_bh include/linux/spinlock.h:409 [inline]
 batadv_nc_purge_paths+0x316/0x3b0 net/batman-adv/network-coding.c:475
 batadv_nc_worker+0x2e7/0x5c0 net/batman-adv/network-coding.c:724
 process_one_work+0x863/0x1000 kernel/workqueue.c:2310
 worker_thread+0xaa8/0x12a0 kernel/workqueue.c:2457
 kthread+0x436/0x520 kernel/kthread.c:334
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>
rcu: rcu_preempt kthread starved for 9250 jiffies! g50773 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:27712 pid:   15 ppid:     2 flags:0x00004000
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5049 [inline]
 __schedule+0x11bb/0x4390 kernel/sched/core.c:6395
 schedule+0x11b/0x1e0 kernel/sched/core.c:6478
 schedule_timeout+0x15c/0x280 kernel/time/timer.c:1914
 rcu_gp_fqs_loop+0x29e/0x11b0 kernel/rcu/tree.c:1972
 rcu_gp_kthread+0x98/0x350 kernel/rcu/tree.c:2145
 kthread+0x436/0x520 kernel/kthread.c:334
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>
rcu: Stack dump where RCU GP kthread last ran:
NMI backtrace for cpu 1
CPU: 1 PID: 0 Comm: swapper/1 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Call Trace:
 <IRQ>
 dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106
 nmi_cpu_backtrace+0x397/0x3d0 lib/nmi_backtrace.c:111
 nmi_trigger_cpumask_backtrace+0x163/0x280 lib/nmi_backtrace.c:62
 trigger_single_cpu_backtrace include/linux/nmi.h:166 [inline]
 rcu_check_gp_kthread_starvation+0x1cd/0x250 kernel/rcu/tree_stall.h:487
 print_other_cpu_stall+0x10c8/0x1220 kernel/rcu/tree_stall.h:592
 check_cpu_stall kernel/rcu/tree_stall.h:745 [inline]
 rcu_pending kernel/rcu/tree.c:3936 [inline]
 rcu_sched_clock_irq+0x831/0x1110 kernel/rcu/tree.c:2619
 update_process_times+0x193/0x200 kernel/time/timer.c:1818
 tick_sched_handle kernel/time/tick-sched.c:254 [inline]
 tick_sched_timer+0x37d/0x560 kernel/time/tick-sched.c:1473
 __run_hrtimer kernel/time/hrtimer.c:1685 [inline]
 __hrtimer_run_queues+0x4fe/0xc40 kernel/time/hrtimer.c:1749
 hrtimer_interrupt+0x3bb/0x8d0 kernel/time/hrtimer.c:1811
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1097 [inline]
 __sysvec_apic_timer_interrupt+0x137/0x4a0 arch/x86/kernel/apic/apic.c:1114
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1108 [inline]
 sysvec_apic_timer_interrupt+0x4d/0xc0 arch/x86/kernel/apic/apic.c:1108
 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676
RIP: 0010:native_safe_halt arch/x86/include/asm/irqflags.h:51 [inline]
RIP: 0010:arch_safe_halt arch/x86/include/asm/irqflags.h:89 [inline]
RIP: 0010:kvm_wait+0x141/0x190 arch/x86/kernel/kvm.c:918
Code: 89 df 48 89 f8 48 c1 e8 03 42 0f b6 04 30 84 c0 75 47 0f b6 1f e8 1f e2 49 00 44 38 e3 75 10 66 90 0f 00 2d c1 68 d4 08 fb f4 <e9> 33 ff ff ff fb e9 2d ff ff ff e8 4f df 6d 08 89 f9 80 e1 07 38
RSP: 0018:ffffc90000dd08a0 EFLAGS: 00000246
RAX: 659ec7bc0a9f7000 RBX: 0000000000000003 RCX: 659ec7bc0a9f7000
RDX: dffffc0000000000 RSI: ffffffff8a0b1be0 RDI: ffffffff8a59e800
RBP: ffffc90000dd0950 R08: dffffc0000000000 R09: fffffbfff1ff542c
R10: fffffbfff1ff542c R11: 1ffffffff1ff542b R12: 0000000000000003
R13: ffff8880b913b154 R14: dffffc0000000000 R15: 1ffff920001ba114
 pv_wait arch/x86/include/asm/paravirt.h:597 [inline]
 pv_wait_head_or_lock kernel/locking/qspinlock_paravirt.h:470 [inline]
 __pv_queued_spin_lock_slowpath+0x60f/0x9c0 kernel/locking/qspinlock.c:508
 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:585 [inline]
 queued_spin_lock_slowpath+0x43/0x50 arch/x86/include/asm/qspinlock.h:51
 queued_spin_lock include/asm-generic/qspinlock.h:85 [inline]
 do_raw_spin_lock+0x217/0x280 kernel/locking/spinlock_debug.c:115
 spin_lock include/linux/spinlock.h:364 [inline]
 tcp_keepalive_timer+0x2f/0xe30 net/ipv4/tcp_timer.c:714
 call_timer_fn+0x16c/0x530 kernel/time/timer.c:1451
 expire_timers kernel/time/timer.c:1496 [inline]
 __run_timers+0x525/0x7c0 kernel/time/timer.c:1767
 run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1780
 handle_softirqs+0x328/0x820 kernel/softirq.c:576
 __do_softirq kernel/softirq.c:610 [inline]
 invoke_softirq kernel/softirq.c:450 [inline]
 __irq_exit_rcu+0x12f/0x220 kernel/softirq.c:659
 irq_exit_rcu+0x5/0x20 kernel/softirq.c:671
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1108 [inline]
 sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1108
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676
RIP: 0010:default_idle+0xb/0x10 arch/x86/kernel/process.c:730
Code: bf 48 89 df e8 c6 03 11 f8 eb b5 e8 ef b5 f6 ff 00 00 cc cc 00 00 cc cc 00 00 cc cc 00 00 cc 66 90 0f 00 2d 17 93 5a 00 fb f4 <c3> 0f 1f 40 00 41 57 41 56 53 49 be 00 00 00 00 00 fc ff df 65 48
RSP: 0018:ffffc90000d67d48 EFLAGS: 000002c2
RAX: 659ec7bc0a9f7000 RBX: ffff88813fe40000 RCX: 659ec7bc0a9f7000
RDX: 0000000000000001 RSI: ffffffff8a0b1be0 RDI: ffffffff8a59e800
RBP: ffffc90000d67e80 R08: dffffc0000000000 R09: ffffed1017227662
R10: ffffed1017227662 R11: 1ffff11017227661 R12: ffffffff8d6935a8
R13: 0000000000000001 R14: 0000000000000001 R15: 1ffff11027fc8000
 default_idle_call+0x81/0xc0 kernel/sched/idle.c:112
 cpuidle_idle_call kernel/sched/idle.c:194 [inline]
 do_idle+0x21b/0x5b0 kernel/sched/idle.c:306
 cpu_startup_entry+0x14/0x20 kernel/sched/idle.c:403
 start_secondary+0x31f/0x430 arch/x86/kernel/smpboot.c:281
 secondary_startup_64_no_verify+0xb1/0xbb
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/12/17 09:44 linux-5.15.y 68efe5a6c16a d6526ea3 .config console log report syz / log [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-perf INFO: rcu detected stall in tcp_keepalive_timer
* Struck through repros no longer work on HEAD.