qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Can I have someone's feedback on [bug 1809075] Concurre


From: Gerd Hoffmann
Subject: Re: [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
Date: Mon, 7 Jan 2019 09:16:27 +0100
User-agent: NeoMutt/20180716

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]