vkms_vblank_simulate: vblank timer overrun ============================= WARNING: suspicious RCU usage syzkaller #0 Not tainted ----------------------------- net/sched/sch_api.c:304 suspicious rcu_dereference_protected() usage! other info that might help us debug this: rcu_scheduler_active = 2, debug_locks = 1 4 locks held by syz.4.396/6322: #0: ffff888024e1b770 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos+0x2bf/0x370 fs/file.c:1056 #1: ffffc90000dd0c00 ((&q->perturb_timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:45 [inline] #1: ffffc90000dd0c00 ((&q->perturb_timer)){+.-.}-{0:0}, at: call_timer_fn+0xbb/0x530 kernel/time/timer.c:1441 #2: ffff888078389108 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:364 [inline] #2: ffff888078389108 (&sch->q.lock){+.-.}-{2:2}, at: sfq_perturbation+0x12e/0x2060 net/sched/sch_sfq.c:610 #3: ffffffff8c11c720 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:312 stack backtrace: CPU: 1 PID: 6322 Comm: syz.4.396 Not tainted syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace: dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106 qdisc_lookup+0xa6/0x650 net/sched/sch_api.c:304 qdisc_tree_reduce_backlog+0x190/0x430 net/sched/sch_api.c:783 sfq_rehash net/sched/sch_sfq.c:598 [inline] sfq_perturbation+0x1f20/0x2060 net/sched/sch_sfq.c:613 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 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 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676 RIP: 0010:preempt_schedule_irq+0xac/0x150 kernel/sched/core.c:6799 Code: 44 24 20 f6 44 24 21 02 74 0b 0f 0b 48 f7 03 08 00 00 00 74 70 bf 01 00 00 00 e8 af 44 a7 f7 e8 fa bd d3 f7 fb bf 01 00 00 00 ef b5 ff ff 48 c7 44 24 40 00 00 00 00 9c 8f 44 24 40 8b 44 24 RSP: 0018:ffffc900034ef8c0 EFLAGS: 00000282 RAX: 453f70c5c03b2d00 RBX: 0000000000000000 RCX: 453f70c5c03b2d00 RDX: dffffc0000000000 RSI: ffffffff8a0b1be0 RDI: 0000000000000001 RBP: ffffc900034ef960 R08: dffffc0000000000 R09: fffffbfff1ff542f R10: fffffbfff1ff542f R11: 1ffffffff1ff542e R12: 0000000000000000 R13: 0000000000000000 R14: dffffc0000000000 R15: 1ffff9200069df18 irqentry_exit+0x63/0x70 kernel/entry/common.c:432 asm_sysvec_reschedule_ipi+0x16/0x20 arch/x86/include/asm/idtentry.h:681 RIP: 0010:dump_stack_lvl+0x1d0/0x230 lib/dump_stack.c:108 Code: e8 c5 b0 dd f7 49 21 de 75 61 e8 db ac dd f7 4d 85 ed 75 07 e8 d1 ac dd f7 eb 06 e8 ca ac dd f7 fb 48 c7 44 24 20 0e 36 e0 45 <4b> c7 04 27 00 00 00 00 43 c7 44 27 09 00 00 00 00 66 43 c7 44 27 RSP: 0018:ffffc900034efa20 EFLAGS: 00000293 RAX: ffffffff899a1f46 RBX: 0000000000000082 RCX: ffff88807e1f5940 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffc900034efb20 R08: dffffc0000000000 R09: fffffbfff1ff542f R10: fffffbfff1ff542f R11: 1ffffffff1ff542e R12: dffffc0000000000 R13: 0000000000000200 R14: 0000000000000000 R15: 1ffff9200069df48 fail_dump lib/fault-inject.c:52 [inline] should_fail+0x38c/0x4c0 lib/fault-inject.c:146 _copy_to_user+0x2e/0x130 lib/usercopy.c:36 copy_to_user include/linux/uaccess.h:200 [inline] simple_read_from_buffer+0xe3/0x150 fs/libfs.c:741 proc_fail_nth_read+0x19a/0x210 fs/proc/base.c:1485 vfs_read+0x2f6/0xcf0 fs/read_write.c:483 ksys_read+0x14d/0x250 fs/read_write.c:623 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:0x7f6ff444a15c Code: ec 28 48 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 99 93 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 34 44 89 c7 48 89 44 24 08 e8 ef 93 02 00 48 RSP: 002b:00007f6ff26b2030 EFLAGS: 00000246 ORIG_RAX: 0000000000000000 RAX: ffffffffffffffda RBX: 00007f6ff46a1fa0 RCX: 00007f6ff444a15c RDX: 000000000000000f RSI: 00007f6ff26b20a0 RDI: 0000000000000007 RBP: 00007f6ff26b2090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 R13: 00007f6ff46a2038 R14: 00007f6ff46a1fa0 R15: 00007ffd5abfeca8 vkms_vblank_simulate: vblank timer overrun ---------------- Code disassembly (best guess): 0: 44 24 20 rex.R and $0x20,%al 3: f6 44 24 21 02 testb $0x2,0x21(%rsp) 8: 74 0b je 0x15 a: 0f 0b ud2 c: 48 f7 03 08 00 00 00 testq $0x8,(%rbx) 13: 74 70 je 0x85 15: bf 01 00 00 00 mov $0x1,%edi 1a: e8 af 44 a7 f7 call 0xf7a744ce 1f: e8 fa bd d3 f7 call 0xf7d3be1e 24: fb sti 25: bf 01 00 00 00 mov $0x1,%edi * 2a: e8 ef b5 ff ff call 0xffffb61e <-- trapping instruction 2f: 48 c7 44 24 40 00 00 movq $0x0,0x40(%rsp) 36: 00 00 38: 9c pushf 39: 8f 44 24 40 pop 0x40(%rsp) 3d: 8b .byte 0x8b 3e: 44 rex.R 3f: 24 .byte 0x24