blob: 0e39f3bf9a881e4375cfef82fa61ea3c64f2aa2b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
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

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"""
|