=============================
[ 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