id = 2860 title = "ps2 keyboard not work after boot and use libspice to connect it" state = "opened" created_at = "2025-03-13T11:30:45.533Z" closed_at = "n/a" labels = ["spice"] url = "https://gitlab.com/qemu-project/qemu/-/issues/2860" host-os = "centos8" host-arch = "x86" qemu-version = "n/a" guest-os = "windows" guest-arch = "x86" description = """When I start almost 10 qemu virtual machines, there will always be one or two that have the ps2 keyboard not work well after booted.But I use mstsc to connect to the desktop, the keyboard works fine. But when reboot or migrate it well recovery.""" reproduce = """1.Asynchronously start 40 qemu virtual machines, each with 4 cores and 4 threads 2.there will always be one or two that have the ps2 keyboard not work well. 4.And when i gdb debug it, i found i hang at the func "prepare_mmio_access" 5.reboot or migrate it well recovery""" additional = """the gdb debug as fllow: gdb attach $pid gdb>b kbd_push_key //spice input gdb>b kbd_read_data gdb>b ps2_keyboard_event gdb>c After continue, the code run on ps2_keyboard_event,but no work to "kbd_read_data".This Proves that the keyboard input has been added to the queue, but has not been read from the queue. gdb> thread 4 //switch to thread "CPU 0/KVM" gdb> bt ![image](/uploads/82527d2b382cacd2d4e40793d78d3e59/image.png) I guess there is no event to notify the device to read after writing to the queue, or is it deadlocked? I'm not sure"""