Michael Tokarev <m...@tls.msk.ru> writes:

> There's a bug filed against debian qemu package, there:
>
>  http://bugs.debian.org/758881
>
> which says about problems sending keypress events over VNC to
> a qemu guest, -- some keypresses gets lost, at least.
>
> The bisection between qemu 2.0 and 2.1 leads to this commit:
>
> commit 2858ab09e6f708e381fc1a1cc87e747a690c4884
> Author: Gonglei <arei.gong...@huawei.com>
> Date:   Thu Apr 24 20:06:19 2014 +0800
>
>     ps2: set ps/2 output buffer size as the same as kernel
>
>     According to the PS/2 Mouse/Keyboard Protocol, the keyboard outupt buffer 
> size
>     is 16 bytes. And the PS2_QUEUE_SIZE 256 was introduced in Qemu from the 
> very
>     beginning.
>
>     When I started a  redhat5.6 32bit guest, meanwhile tapped the keyboard as 
> quickly as
>     possible, the screen would show me "i8042.c: No controller found". As a 
> result,
>     I couldn't use the keyboard in the VNC client.
>
>     Previous discussion about the issue in maillist:
>     http://thread.gmane.org/gmane.comp.emulators.qemu/43294/focus=47180
>
>     This patch has been tested on redhat5.6 32-bit/suse11sp3 64-bit guests.
>     More easy meathod to reproduce:
>     1.boot a guest with libvirt.
>     2.connect to VNC client.
>     3.as you see the BIOS, bootloader, Linux booting, run the follow simply 
> shell script:
>     for((i=0;i<10000000;i++)) do virsh send-key redhat5.6 KEY_A; done
>
>     Actual results:
>     dmesg show "i8042.c: No controller found." And the keyboard is out of 
> work.
>
>     Signed-off-by: Gonglei <arei.gong...@huawei.com>
>     Reviewed-by: Juan Quintela <quint...@redhat.com>
>     Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
>
>
> So it looks like something else is not right here.  Before this patch,
> it wasn't possible to use keyboard with VNC client with redhat 5 guest.
> Now, it isn't possible to use keyboard with VNC in another scenario which
> worked before (so it is a regression compared with 2.0 version).
>
> What do we do with this? :)

Suggest to add a tracepoint to the place that drops keystrokes due to
buffer being full, to verify that's really what happens.  Quick glance
at the code suggests ps2_queue().

Reply via email to