device: 0.764 other: 0.737 graphic: 0.723 semantic: 0.669 vnc: 0.656 socket: 0.652 boot: 0.637 network: 0.606 KVM: 0.601 [Qemu-devel] Can I have someone's feedback on [bug 1809075] Concurrency bug on keyboard events: capslock LED messing up keycode streams causes character misses at guest kernel Hi everyone. Can I please have someone's feedback on this bug? https://bugs.launchpad.net/qemu/+bug/1809075 Briefly, guest OS loses characters sent to it via vnc. And I spot the bug in relation to ps2 driver. I'm thinking of possible fixes and I might want to use a memory barrier. But I would really like to have some suggestion from a qemu developer first. For example, can we brutally drop capslock LED key events in ps2 queue? It is actually relevant to openQA, an automated QA tool for openSUSE. And this bug blocks a few test cases for us. Thank you in advance! Kind regards, Gao Zhiyuan Cc'ing Marc-André & Gerd. On 12/19/18 10:31 AM, Gao Zhiyuan wrote: > Hi everyone. > > Can I please have someone's feedback on this bug? > https://bugs.launchpad.net/qemu/+bug/1809075 > Briefly, guest OS loses characters sent to it via vnc. And I spot the > bug in relation to ps2 driver. > > I'm thinking of possible fixes and I might want to use a memory barrier. > But I would really like to have some suggestion from a qemu developer > first. For example, can we brutally drop capslock LED key events in ps2 > queue? > > It is actually relevant to openQA, an automated QA tool for openSUSE. > And this bug blocks a few test cases for us. > > Thank you in advance! > > Kind regards, > Gao Zhiyuan > On Thu, Jan 03, 2019 at 12:05:54PM +0100, Philippe Mathieu-Daudé wrote: > Cc'ing Marc-André & Gerd. > > On 12/19/18 10:31 AM, Gao Zhiyuan wrote: > > Hi everyone. > > > > Can I please have someone's feedback on this bug? > > https://bugs.launchpad.net/qemu/+bug/1809075 > > Briefly, guest OS loses characters sent to it via vnc. And I spot the > > bug in relation to ps2 driver. > > > > I'm thinking of possible fixes and I might want to use a memory barrier. > > But I would really like to have some suggestion from a qemu developer > > first. For example, can we brutally drop capslock LED key events in ps2 > > queue? There is no "capslock LED key event". 0xfa is KBD_REPLY_ACK, and the device queues it in response to guest port writes. Yes, the ack can race with actual key events. But IMO that isn't a bug in qemu. Probably the linux kernel just throws away everything until it got the ack for the port write, and that way the key event gets lost. On physical hardware you will not notice because it is next to impossible to type fast enough to hit the race window. So, go fix the kernel. Alternatively fix vncdotool to send uppercase letters properly with shift key pressed. Then qemu wouldn't generate capslock key events (that happens because qemu thinks guest and host capslock state is out of sync) and the guests's capslock led update request wouldn't get into the way. cheers, Gerd