[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <696d5dac.a70a0220.34546f.0345.GAE@google.com>
Date: Sun, 18 Jan 2026 14:24:44 -0800
From: syzbot <syzbot+8bb3e2bee8a429cc76dd@...kaller.appspotmail.com>
To: linux-kernel@...r.kernel.org, syzkaller-bugs@...glegroups.com
Subject: Forwarded: Private message regarding: [syzbot] [mm?] INFO: rcu
detected stall in sys_execve (6)
For archival purposes, forwarding an incoming command email to
linux-kernel@...r.kernel.org, syzkaller-bugs@...glegroups.com.
***
Subject: Private message regarding: [syzbot] [mm?] INFO: rcu detected stall in sys_execve (6)
Author: kapoorarnav43@...il.com
#syz test
>From be1f91fc995cb0dc6a78b89a970c69640ad9e629 Mon Sep 17 00:00:00 2001
From: Arnav Kapoor <kapoorarnav43@...il.com>
Date: Mon, 19 Jan 2026 03:53:16 +0530
Subject: [PATCH] netfilter: nf_conntrack: add cond_resched() in gc_worker to
prevent RCU stalls
The gc_worker processes conntrack entries in batches, and for large
hash buckets, it can hold RCU read lock for extended periods without
yielding, leading to RCU stalls. Add cond_resched() inside the entry
processing loop to allow scheduler preemption and RCU grace periods
to complete.
Reported-by: syzbot+8bb3e2bee8a429cc76dd@...kaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=8bb3e2bee8a429cc76dd
---
net/netfilter/nf_conntrack_core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/netfilter/nf_conntrack_core.c
b/net/netfilter/nf_conntrack_core.c
index d1f8eb725..a3ef8eae7 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -1608,6 +1608,7 @@ static void gc_worker(struct work_struct *work)
}
nf_ct_put(tmp);
+ cond_resched();
}
/* could check get_nulls_value() here and restart if ct
--
2.43.0
On Monday, 19 January 2026 at 03:51:05 UTC+5:30 syzbot wrote:
Hello,
syzbot has tested the proposed patch but the reproducer is still triggering
an issue:
INFO: rcu detected stall in worker_thread
rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
rcu: 0-...0: (1 ticks this GP) idle=1544/1/0x4000000000000000
softirq=21116/21116 fqs=7
rcu: hardirqs softirqs csw/system
rcu: number: 0 0 0
rcu: cputime: 0 0 0 ==> 21980(ms)
rcu: Tasks blocked on level-0 rcu_node (CPUs 0-1): P6477/1:b..l
rcu: (detected by 1, t=10502 jiffies, g=15529, q=2686 ncpus=2)
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 UID: 0 PID: 9 Comm: kworker/0:0 Not tainted syzkaller #0
PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 10/25/2025
Workqueue: events_power_efficient gc_worker
RIP: 0010:arch_atomic_read arch/x86/include/asm/atomic.h:23 [inline]
RIP: 0010:raw_atomic_read include/linux/atomic/atomic-arch-fallback.h:457
[inline]
RIP: 0010:atomic_read include/linux/atomic/atomic-instrumented.h:33
[inline]
RIP: 0010:queued_spin_is_locked include/asm-generic/qspinlock.h:57 [inline]
RIP: 0010:debug_spin_unlock kernel/locking/spinlock_debug.c:101 [inline]
RIP: 0010:do_raw_spin_unlock+0x59/0x240 kernel/locking/spinlock_debug.c:141
Code: 84 01 00 00 41 81 3e ad 4e ad de 0f 85 f3 00 00 00 48 89 df be 04 00
00 00 e8 53 8a 88 00 48 89 d8 48 c1 e8 03 42 0f b6 04 20 <84> c0 0f 85 74
01 00 00 83 3b 00 0f 84 ea 00 00 00 4c 8d 73 10 4d
RSP: 0018:ffffc90000007c28 EFLAGS: 00000806
RAX: 0000000000000000 RBX: ffff888030b1e2a8 RCX: ffffffff819e93bd
RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffff888030b1e2a8
RBP: ffff88805a66a150 R08: ffff888030b1e2ab R09: 1ffff11006163c55
R10: dffffc0000000000 R11: ffffed1006163c56 R12: dffffc0000000000
R13: ffff888030b1e000 R14: ffff888030b1e2ac R15: ffff88805d10fc00
FS: 0000000000000000(0000) GS:ffff888125e1e000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffdb6036498 CR3: 000000000dd3a000 CR4: 00000000003526f0
Call Trace:
<IRQ>
__raw_spin_unlock include/linux/spinlock_api_smp.h:142 [inline]
_raw_spin_unlock+0x1e/0x50 kernel/locking/spinlock.c:186
spin_unlock include/linux/spinlock.h:391 [inline]
advance_sched+0x99f/0xc90 net/sched/sch_taprio.c:987
__run_hrtimer kernel/time/hrtimer.c:1777 [inline]
__hrtimer_run_queues+0x51c/0xc30 kernel/time/hrtimer.c:1841
hrtimer_interrupt+0x45b/0xaa0 kernel/time/hrtimer.c:1903
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1045 [inline]
__sysvec_apic_timer_interrupt+0x102/0x3e0 arch/x86/kernel/apic/apic.c:1062
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1056 [inline]
sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1056
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x1a/0x20
arch/x86/include/asm/idtentry.h:697
RIP: 0010:seqcount_lockdep_reader_access+0xed/0x100
include/linux/seqlock.h:75
Code: 00 75 11 e8 05 82 3e f8 4d 85 f6 75 16 e8 fb 81 3e f8 eb 15 e8 f4 81
3e f8 e8 5f 7a d7 01 4d 85 f6 74 ea e8 e5 81 3e f8 fb 5b <41> 5e e9 4c 59
da 01 cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90
RSP: 0018:ffffc900000e7910 EFLAGS: 00000293
RAX: ffffffff898276cb RBX: 0000000000000001 RCX: ffff88801c2c8000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc900000e7a70 R08: ffffffff8f822e77 R09: 1ffffffff1f045ce
R10: dffffc0000000000 R11: fffffbfff1f045cf R12: ffff8880b863a080
R13: ffff88801be91418 R14: 0000000000000200 R15: 0000000000040000
nf_conntrack_get_ht include/net/netfilter/nf_conntrack.h:342 [inline]
gc_worker+0x308/0x1380 net/netfilter/nf_conntrack_core.c:1548
process_one_work kernel/workqueue.c:3257 [inline]
process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340
worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421
kthread+0x711/0x8a0 kernel/kthread.c:463
ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
</TASK>
task:dhcpcd-run-hook state:R running task stack:27640 pid:6477 tgid:6477
ppid:6464 task_flags:0x40004c flags:0x00080000
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5256 [inline]
__schedule+0x149b/0x4fd0 kernel/sched/core.c:6863
preempt_schedule_irq+0x4d/0xa0 kernel/sched/core.c:7190
irqentry_exit+0x5e3/0x670 kernel/entry/common.c:216
asm_sysvec_apic_timer_interrupt+0x1a/0x20
arch/x86/include/asm/idtentry.h:697
RIP: 0010:lock_acquire+0x222/0x340 kernel/locking/lockdep.c:5872
Code: ff ff ff e8 70 00 bc 09 f7 44 24 08 00 02 00 00 0f 84 3a ff ff ff 65
48 8b 05 5a 2f e2 10 48 3b 44 24 58 75 33 fb 48 83 c4 60 <5b> 41 5c 41 5d
41 5e 41 5f 5d e9 3f df be 09 cc 48 8d 3d 97 82 e7
RSP: 0018:ffffc900031073f8 EFLAGS: 00000282
RAX: 8aa7093569192b00 RBX: 0000000000000000 RCX: 0000000000000046
RDX: 00000000bfbdb79f RSI: ffffffff8d9774de RDI: ffffffff8bc086e0
RBP: ffffffff8173fdd5 R08: ffffffff8173fdd5 R09: ffffffff8df41aa0
R10: ffffc90003107558 R11: ffffffff81acf4d0 R12: 0000000000000002
R13: ffffffff8df41aa0 R14: 0000000000000000 R15: 0000000000000246
rcu_lock_acquire include/linux/rcupdate.h:331 [inline]
rcu_read_lock include/linux/rcupdate.h:867 [inline]
class_rcu_constructor include/linux/rcupdate.h:1195 [inline]
unwind_next_frame+0xc2/0x23d0 arch/x86/kernel/unwind_orc.c:495
arch_stack_walk+0x11c/0x150 arch/x86/kernel/stacktrace.c:25
stack_trace_save+0x9c/0xe0 kernel/stacktrace.c:122
kasan_save_stack mm/kasan/common.c:57 [inline]
kasan_save_track+0x3e/0x80 mm/kasan/common.c:78
kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584
poison_slab_object mm/kasan/common.c:253 [inline]
__kasan_slab_free+0x5c/0x80 mm/kasan/common.c:285
kasan_slab_free include/linux/kasan.h:235 [inline]
slab_free_hook mm/slub.c:2540 [inline]
slab_free mm/slub.c:6670 [inline]
kmem_cache_free+0x197/0x620 mm/slub.c:6781
anon_vma_chain_free mm/rmap.c:146 [inline]
unlink_anon_vmas+0x2cc/0x670 mm/rmap.c:420
free_pgtables+0x57f/0x9d0 mm/memory.c:399
exit_mmap+0x431/0xb10 mm/mmap.c:1288
__mmput+0x118/0x430 kernel/fork.c:1173
exit_mm+0x169/0x230 kernel/exit.c:581
do_exit+0x627/0x22f0 kernel/exit.c:959
do_group_exit+0x21c/0x2d0 kernel/exit.c:1112
__do_sys_exit_group kernel/exit.c:1123 [inline]
__se_sys_exit_group kernel/exit.c:1121 [inline]
__x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121
x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fe808c126c5
RSP: 002b:00007ffdb60363a8 EFLAGS: 00000202 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 00007ffdb6036604 RCX: 00007fe808c126c5
RDX: 00000000000000e7 RSI: ffffffffffffff88 RDI: 0000000000000000
RBP: 0000000000000003 R08: 00007ffdb60364a0 R09: 0000000000000002
R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000000
R13: 00007ffdb60366e0 R14: 00007fe808e22000 R15: 000055f28d607d98
</TASK>
rcu: rcu_preempt kthread starved for 2154 jiffies! g15529 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:27480 pid:16 tgid:16 ppid:2
task_flags:0x208040 flags:0x00080000
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5256 [inline]
__schedule+0x149b/0x4fd0 kernel/sched/core.c:6863
__schedule_loop kernel/sched/core.c:6945 [inline]
schedule+0x165/0x360 kernel/sched/core.c:6960
schedule_timeout+0x12b/0x270 kernel/time/sleep_timeout.c:99
rcu_gp_fqs_loop+0x301/0x1540 kernel/rcu/tree.c:2083
rcu_gp_kthread+0x99/0x390 kernel/rcu/tree.c:2285
kthread+0x711/0x8a0 kernel/kthread.c:463
ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
</TASK>
rcu: Stack dump where RCU GP kthread last ran:
CPU: 1 UID: 0 PID: 13 Comm: kworker/u8:1 Not tainted syzkaller #0
PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 10/25/2025
Workqueue: writeback wb_workfn (flush-8:0)
RIP: 0010:csd_lock_wait kernel/smp.c:342 [inline]
RIP: 0010:smp_call_function_many_cond+0xcc5/0x1260 kernel/smp.c:877
Code: 45 8b 2c 24 44 89 ee 83 e6 01 31 ff e8 d4 97 0b 00 41 83 e5 01 49 bd
00 00 00 00 00 fc ff df 75 07 e8 7f 93 0b 00 eb 38 f3 90 <42> 0f b6 04 2b
84 c0 75 11 41 f7 04 24 01 00 00 00 74 1e e8 63 93
RSP: 0018:ffffc90000126540 EFLAGS: 00000293
RAX: ffffffff81b5654d RBX: 1ffff110170c856d RCX: ffff88801c2f0000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffffc90000126670 R08: ffff888076e16d87 R09: 1ffff1100edc2db0
R10: dffffc0000000000 R11: ffffffff8175f0c0 R12: ffff8880b8642b68
R13: dffffc0000000000 R14: ffff8880b873bb00 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff888125f1e000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f8357b4de9c CR3: 0000000075acc000 CR4: 00000000003526f0
Call Trace:
<TASK>
on_each_cpu_cond_mask+0x3f/0x80 kernel/smp.c:1043
__flush_tlb_multi arch/x86/include/asm/paravirt.h:91 [inline]
flush_tlb_multi arch/x86/mm/tlb.c:1382 [inline]
flush_tlb_mm_range+0x60a/0x1170 arch/x86/mm/tlb.c:1472
flush_tlb_page arch/x86/include/asm/tlbflush.h:324 [inline]
ptep_clear_flush+0x120/0x170 mm/pgtable-generic.c:103
page_vma_mkclean_one+0x401/0x790 mm/rmap.c:1017
page_mkclean_one+0x1c0/0x280 mm/rmap.c:1065
__rmap_walk_file+0x467/0x620 mm/rmap.c:2927
rmap_walk mm/rmap.c:2971 [inline]
folio_mkclean+0x297/0x390 mm/rmap.c:1097
folio_clear_dirty_for_io+0x1a5/0x710 mm/page-writeback.c:2932
mpage_submit_folio+0x86/0x2b0 fs/ext4/inode.c:2068
mpage_map_and_submit_buffers fs/ext4/inode.c:2330 [inline]
mpage_map_and_submit_extent fs/ext4/inode.c:2520 [inline]
ext4_do_writepages+0x1fe9/0x4500 fs/ext4/inode.c:2932
ext4_writepages+0x203/0x350 fs/ext4/inode.c:3026
do_writepages+0x32e/0x550 mm/page-writeback.c:2598
__writeback_single_inode+0x133/0x1240 fs/fs-writeback.c:1737
writeback_sb_inodes+0x93a/0x1870 fs/fs-writeback.c:2030
__writeback_inodes_wb+0x111/0x240 fs/fs-writeback.c:2107
wb_writeback+0x43f/0xaa0 fs/fs-writeback.c:2218
wb_check_old_data_flush fs/fs-writeback.c:2322 [inline]
wb_do_writeback fs/fs-writeback.c:2375 [inline]
wb_workfn+0xad2/0xed0 fs/fs-writeback.c:2403
process_one_work kernel/workqueue.c:3257 [inline]
process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340
worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421
kthread+0x711/0x8a0 kernel/kthread.c:463
ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
</TASK>
Tested on:
commit: f40ddcc0 Revert "nfc/nci: Add the inconsistency check ..
git tree: net
console output: https://syzkaller.appspot.com/x/log.txt?x=105ff522580000
kernel config: https://syzkaller.appspot.com/x/.config?x=323fe5bdde2384a5
dashboard link: https://syzkaller.appspot.com/bug?extid=8bb3e2bee8a429cc76dd
compiler: Debian clang version 20.1.8
(++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD
20.1.8
patch: https://syzkaller.appspot.com/x/patch.diff?x=1077f522580000
Powered by blists - more mailing lists