[v5.15] INFO: rcu detected stall in kvm_vcpu_ioctl

5 views
Skip to first unread message

syzbot

unread,
Jun 5, 2025, 3:21:32 PM6/5/25
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 1c700860e8bc Linux 5.15.185
git tree: linux-5.15.y
console output: https://syzkaller.appspot.com/x/log.txt?x=1416b1d4580000
kernel config: https://syzkaller.appspot.com/x/.config?x=db74c56dea20051
dashboard link: https://syzkaller.appspot.com/bug?extid=20e139d318a0d1d22a4b
compiler: Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6

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

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/98c9bcd8fb21/disk-1c700860.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/75eaa3b1c3f3/vmlinux-1c700860.xz
kernel image: https://storage.googleapis.com/syzbot-assets/ed251e9d15fe/bzImage-1c700860.xz

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

rcu: INFO: rcu_preempt self-detected stall on CPU
rcu: 0-...!: (10500 ticks this GP) idle=283/1/0x4000000000000000 softirq=56636/56636 fqs=0
(t=10500 jiffies g=80353 q=791)
rcu: rcu_preempt kthread timer wakeup didn't happen for 10499 jiffies! g80353 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
rcu: Possible timer handling issue on cpu=0 timer-softirq=63304
rcu: rcu_preempt kthread starved for 10500 jiffies! g80353 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->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:I stack:27808 pid: 15 ppid: 2 flags:0x00004000
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5030 [inline]
__schedule+0x11b8/0x43b0 kernel/sched/core.c:6376
schedule+0x11b/0x1e0 kernel/sched/core.c:6459
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 0
CPU: 0 PID: 15758 Comm: syz.8.2426 Not tainted 5.15.185-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/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_cpu_stall+0x318/0x5f0 kernel/rcu/tree_stall.h:631
check_cpu_stall kernel/rcu/tree_stall.h:727 [inline]
rcu_pending kernel/rcu/tree.c:3932 [inline]
rcu_sched_clock_irq+0x6d8/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:1690 [inline]
__hrtimer_run_queues+0x4fe/0xc40 kernel/time/hrtimer.c:1754
hrtimer_interrupt+0x3bb/0x8d0 kernel/time/hrtimer.c:1816
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+0x9b/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:lock_acquire+0x1f2/0x3f0 kernel/locking/lockdep.c:5627
Code: 00 9c 8f 84 24 80 00 00 00 f6 84 24 81 00 00 00 02 0f 85 f6 00 00 00 41 f7 c6 00 02 00 00 74 01 fb 48 c7 44 24 60 0e 36 e0 45 <4b> c7 44 3d 00 00 00 00 00 66 43 c7 44 3d 09 00 00 43 c6 44 3d 0b
RSP: 0018:ffffc90003adf220 EFLAGS: 00000206
RAX: 0000000000000001 RBX: 0000000000000000 RCX: 188e798f5fa8c600
RDX: 0000000000000000 RSI: ffffffff8a0b2460 RDI: ffffffff8a59a740
RBP: ffffc90003adf338 R08: dffffc0000000000 R09: fffffbfff1ff363f
R10: fffffbfff1ff363f R11: 1ffffffff1ff363e R12: ffffc90003ff1018
R13: 1ffff9200075be50 R14: 0000000000000246 R15: dffffc0000000000
__raw_write_lock include/linux/rwlock_api_smp.h:210 [inline]
_raw_write_lock+0x2a/0x40 kernel/locking/spinlock.c:300
kvm_mmu_unprotect_page+0xc2/0x340 arch/x86/kvm/mmu/mmu.c:2543
retry_instruction arch/x86/kvm/x86.c:7925 [inline]
x86_emulate_instruction+0x1539/0x2250 arch/x86/kvm/x86.c:8187
__vmx_handle_exit arch/x86/kvm/vmx/vmx.c:6168 [inline]
vmx_handle_exit+0xc77/0x18c0 arch/x86/kvm/vmx/vmx.c:6185
vcpu_enter_guest+0x61a9/0x70e0 arch/x86/kvm/x86.c:10072
vcpu_run arch/x86/kvm/x86.c:10162 [inline]
kvm_arch_vcpu_ioctl_run+0xdea/0x1f40 arch/x86/kvm/x86.c:10399
kvm_vcpu_ioctl+0x887/0xb80 virt/kvm/kvm_main.c:3894
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl+0xfa/0x170 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7fe4d348e929
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fe4d12f6038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007fe4d36b5fa0 RCX: 00007fe4d348e929
RDX: 0000000000000000 RSI: 000000000000ae80 RDI: 0000000000000006
RBP: 00007fe4d3510b39 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fe4d36b5fa0 R15: 00007ffcd8ce1ca8
</TASK>
NMI backtrace for cpu 0
CPU: 0 PID: 15758 Comm: syz.8.2426 Not tainted 5.15.185-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/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_dump_cpu_stacks+0x22f/0x380 kernel/rcu/tree_stall.h:349
print_cpu_stall+0x31d/0x5f0 kernel/rcu/tree_stall.h:633
check_cpu_stall kernel/rcu/tree_stall.h:727 [inline]
rcu_pending kernel/rcu/tree.c:3932 [inline]
rcu_sched_clock_irq+0x6d8/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:1690 [inline]
__hrtimer_run_queues+0x4fe/0xc40 kernel/time/hrtimer.c:1754
hrtimer_interrupt+0x3bb/0x8d0 kernel/time/hrtimer.c:1816
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+0x9b/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:lock_acquire+0x1f2/0x3f0 kernel/locking/lockdep.c:5627
Code: 00 9c 8f 84 24 80 00 00 00 f6 84 24 81 00 00 00 02 0f 85 f6 00 00 00 41 f7 c6 00 02 00 00 74 01 fb 48 c7 44 24 60 0e 36 e0 45 <4b> c7 44 3d 00 00 00 00 00 66 43 c7 44 3d 09 00 00 43 c6 44 3d 0b
RSP: 0018:ffffc90003adf220 EFLAGS: 00000206
RAX: 0000000000000001 RBX: 0000000000000000 RCX: 188e798f5fa8c600
RDX: 0000000000000000 RSI: ffffffff8a0b2460 RDI: ffffffff8a59a740
RBP: ffffc90003adf338 R08: dffffc0000000000 R09: fffffbfff1ff363f
R10: fffffbfff1ff363f R11: 1ffffffff1ff363e R12: ffffc90003ff1018
R13: 1ffff9200075be50 R14: 0000000000000246 R15: dffffc0000000000
__raw_write_lock include/linux/rwlock_api_smp.h:210 [inline]
_raw_write_lock+0x2a/0x40 kernel/locking/spinlock.c:300
kvm_mmu_unprotect_page+0xc2/0x340 arch/x86/kvm/mmu/mmu.c:2543
retry_instruction arch/x86/kvm/x86.c:7925 [inline]
x86_emulate_instruction+0x1539/0x2250 arch/x86/kvm/x86.c:8187
__vmx_handle_exit arch/x86/kvm/vmx/vmx.c:6168 [inline]
vmx_handle_exit+0xc77/0x18c0 arch/x86/kvm/vmx/vmx.c:6185
vcpu_enter_guest+0x61a9/0x70e0 arch/x86/kvm/x86.c:10072
vcpu_run arch/x86/kvm/x86.c:10162 [inline]
kvm_arch_vcpu_ioctl_run+0xdea/0x1f40 arch/x86/kvm/x86.c:10399
kvm_vcpu_ioctl+0x887/0xb80 virt/kvm/kvm_main.c:3894
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl+0xfa/0x170 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7fe4d348e929
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fe4d12f6038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007fe4d36b5fa0 RCX: 00007fe4d348e929
RDX: 0000000000000000 RSI: 000000000000ae80 RDI: 0000000000000006
RBP: 00007fe4d3510b39 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fe4d36b5fa0 R15: 00007ffcd8ce1ca8
</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

syzbot

unread,
Jan 11, 2026, 7:18:25 PMJan 11
to syzkaller...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: 68efe5a6c16a Linux 5.15.197
git tree: linux-5.15.y
console output: https://syzkaller.appspot.com/x/log.txt?x=15fed99a580000
kernel config: https://syzkaller.appspot.com/x/.config?x=7e6ed99963d6ee1d
dashboard link: https://syzkaller.appspot.com/bug?extid=20e139d318a0d1d22a4b
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=10153922580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17ea65fa580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/900f9b9bd850/disk-68efe5a6.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/1e089a5019a6/vmlinux-68efe5a6.xz
kernel image: https://storage.googleapis.com/syzbot-assets/b319f477b907/bzImage-68efe5a6.xz

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

rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
(detected by 1, t=10502 jiffies, g=8277, q=122)
rcu: All QSes seen, last rcu_preempt kthread activity 10502 (4294955908-4294945406), jiffies_till_next_fqs=1, root ->qsmask 0x0
rcu: rcu_preempt kthread starved for 10502 jiffies! g8277 f0x2 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:28064 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:
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 4398 Comm: syz.0.22 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
RIP: 0010:check_kcov_mode kernel/kcov.c:172 [inline]
RIP: 0010:__sanitizer_cov_trace_pc+0x1b/0x60 kernel/kcov.c:206
Code: 89 de 5b e9 d7 9e 43 00 00 00 cc cc 00 00 cc 48 8b 04 24 65 48 8b 0d a4 a3 8a 7e 65 8b 15 a5 a3 8a 7e 81 e2 00 01 ff 00 74 11 <81> fa 00 01 00 00 75 35 83 b9 34 16 00 00 00 74 2c 8b 91 10 16 00
RSP: 0018:ffffc90000007d18 EFLAGS: 00000006
RAX: ffffffff8167b95f RBX: 0000000000000001 RCX: ffff888029d65940
RDX: 0000000000010000 RSI: 0000000000000000 RDI: 0000000000000007
RBP: ffffc90000007e98 R08: dffffc0000000000 R09: ffffed1017205449
R10: ffffed1017205449 R11: 1ffff11017205448 R12: ffff8880b902a2d0
R13: 1ffff1101720545a R14: 0000000000000000 R15: dffffc0000000000
FS: 000055557cabc500(0000) GS:ffff8880b9000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b31b63fff CR3: 000000001fe21000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
cpu_max_bits_warn include/linux/cpumask.h:108 [inline]
cpumask_check include/linux/cpumask.h:115 [inline]
cpumask_test_cpu include/linux/cpumask.h:344 [inline]
cpu_online include/linux/cpumask.h:895 [inline]
trace_hrtimer_expire_entry include/trace/events/timer.h:236 [inline]
__run_hrtimer kernel/time/hrtimer.c:1682 [inline]
__hrtimer_run_queues+0x46f/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+0x9b/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:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:161 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xa5/0x100 kernel/locking/spinlock.c:194
Code: 74 05 e8 be 9a d2 f7 48 c7 44 24 20 00 00 00 00 9c 8f 44 24 20 f6 44 24 21 02 75 4b f7 c3 00 02 00 00 74 01 fb bf 01 00 00 00 <e8> d6 22 a6 f7 65 8b 05 67 20 57 76 85 c0 74 3c 48 c7 04 24 0e 36
RSP: 0018:ffffc900036cf380 EFLAGS: 00000206
RAX: ece30d54b52e6b00 RBX: 0000000000000a06 RCX: ece30d54b52e6b00
RDX: dffffc0000000000 RSI: ffffffff8a0b1be0 RDI: 0000000000000001
RBP: ffffc900036cf410 R08: dffffc0000000000 R09: fffffbfff1ff543e
R10: fffffbfff1ff543e R11: 1ffffffff1ff543d R12: dffffc0000000000
R13: 0000000000000000 R14: ffff8880b902a240 R15: 1ffff920006d9e70
hrtimer_start include/linux/hrtimer.h:420 [inline]
stimer_start arch/x86/kvm/hyperv.c:-1 [inline]
kvm_hv_process_stimers+0x12ff/0x1aa0 arch/x86/kvm/hyperv.c:863
vcpu_enter_guest+0x2fc8/0x7110 arch/x86/kvm/x86.c:9872
vcpu_run arch/x86/kvm/x86.c:10181 [inline]
kvm_arch_vcpu_ioctl_run+0xdea/0x1f40 arch/x86/kvm/x86.c:10418
kvm_vcpu_ioctl+0x887/0xb80 virt/kvm/kvm_main.c:3894
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl+0xfa/0x170 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7f36ba239749
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe1e96eab8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f36ba48ffa0 RCX: 00007f36ba239749
RDX: 0000000000000000 RSI: 000000000000ae80 RDI: 0000000000000005
RBP: 00007f36ba2bdf91 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f36ba48ffa0 R14: 00007f36ba48ffa0 R15: 0000000000000003
</TASK>
sched: RT throttling activated


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
Reply all
Reply to author
Forward
0 new messages