============================= [ BUG: Invalid wait context ] 6.15.0-rc6-syzkaller #0 Not tainted ----------------------------- swapper/0/0 is trying to lock: ffffc9000f162410 (&gpc->lock){....}-{3:3}, at: kvm_xen_set_evtchn_fast+0x1fb/0x9a0 arch/x86/kvm/xen.c:1819 other info that might help us debug this: context-{2:2} 2 locks held by swapper/0/0: #0: ffffffff8df3d860 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #0: ffffffff8df3d860 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #0: ffffffff8df3d860 (rcu_read_lock){....}-{1:3}, at: class_rcu_constructor include/linux/rcupdate.h:1155 [inline] #0: ffffffff8df3d860 (rcu_read_lock){....}-{1:3}, at: sched_core_balance+0xc9/0xf00 kernel/sched/core.c:6410 #1: ffffc9000f162958 (&kvm->srcu){.?.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:161 [inline] #1: ffffc9000f162958 (&kvm->srcu){.?.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:253 [inline] #1: ffffc9000f162958 (&kvm->srcu){.?.+}-{0:0}, at: kvm_xen_set_evtchn_fast+0x1c3/0x9a0 arch/x86/kvm/xen.c:1817 stack backtrace: CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.15.0-rc6-syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025 Call Trace: dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120 print_lock_invalid_wait_context kernel/locking/lockdep.c:4831 [inline] check_wait_context kernel/locking/lockdep.c:4903 [inline] __lock_acquire+0xbcf/0xd20 kernel/locking/lockdep.c:5185 lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5866 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0xaf/0x100 kernel/locking/spinlock.c:236 kvm_xen_set_evtchn_fast+0x1fb/0x9a0 arch/x86/kvm/xen.c:1819 xen_timer_callback+0x109/0x220 arch/x86/kvm/xen.c:140 __run_hrtimer kernel/time/hrtimer.c:1761 [inline] __hrtimer_run_queues+0x4dd/0xc60 kernel/time/hrtimer.c:1825 hrtimer_interrupt+0x45b/0xaa0 kernel/time/hrtimer.c:1887 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1038 [inline] __sysvec_apic_timer_interrupt+0x108/0x410 arch/x86/kernel/apic/apic.c:1055 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline] sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1049 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:sched_core_balance+0x156/0xf00 kernel/sched/core.c:6413 Code: 4c 6a 8b e8 1c 43 0b 00 4c 89 74 24 68 4c 89 7c 24 48 e9 3b 0d 00 00 4c 89 f7 e8 65 94 c5 09 e8 30 47 34 00 fb 48 8b 5c 24 70 <83> fb 08 0f 83 06 0d 00 00 4c 8d 34 dd 10 ec 96 8d 4c 89 f0 48 c1 RSP: 0018:ffffffff8dc07980 EFLAGS: 00000282 RAX: ca64324e121b4100 RBX: 0000000000000000 RCX: ca64324e121b4100 RDX: 0000000000000000 RSI: ffffffff8d74b4c4 RDI: ffffffff8bc1d2e0 RBP: ffffffff8dc07ae8 R08: ffffffff8f7ef677 R09: 1ffffffff1efdece R10: dffffc0000000000 R11: fffffbfff1efdecf R12: ffff8880b8839b40 R13: dffffc0000000000 R14: ffff8880b8839b40 R15: 0000000000000000 do_balance_callbacks kernel/sched/core.c:5028 [inline] __balance_callbacks kernel/sched/core.c:5082 [inline] finish_lock_switch kernel/sched/core.c:5129 [inline] finish_task_switch+0x3a4/0x950 kernel/sched/core.c:5248 context_switch kernel/sched/core.c:5385 [inline] __schedule+0x16ea/0x4cd0 kernel/sched/core.c:6767 schedule_idle+0x52/0x90 kernel/sched/core.c:6886 do_idle+0x4ad/0x510 kernel/sched/idle.c:353 cpu_startup_entry+0x44/0x60 kernel/sched/idle.c:423 rest_init+0x2de/0x300 init/main.c:743 start_kernel+0x470/0x4f0 init/main.c:1099 x86_64_start_reservations+0x2a/0x30 arch/x86/kernel/head64.c:513 x86_64_start_kernel+0x66/0x70 arch/x86/kernel/head64.c:494 common_startup_64+0x13e/0x147 ---------------- Code disassembly (best guess): 0: 4c 6a 8b rex.WR push $0xffffffffffffff8b 3: e8 1c 43 0b 00 call 0xb4324 8: 4c 89 74 24 68 mov %r14,0x68(%rsp) d: 4c 89 7c 24 48 mov %r15,0x48(%rsp) 12: e9 3b 0d 00 00 jmp 0xd52 17: 4c 89 f7 mov %r14,%rdi 1a: e8 65 94 c5 09 call 0x9c59484 1f: e8 30 47 34 00 call 0x344754 24: fb sti 25: 48 8b 5c 24 70 mov 0x70(%rsp),%rbx * 2a: 83 fb 08 cmp $0x8,%ebx <-- trapping instruction 2d: 0f 83 06 0d 00 00 jae 0xd39 33: 4c 8d 34 dd 10 ec 96 lea -0x726913f0(,%rbx,8),%r14 3a: 8d 3b: 4c 89 f0 mov %r14,%rax 3e: 48 rex.W 3f: c1 .byte 0xc1