Hi, > From: Michael Tokarev [mailto:m...@tls.msk.ru] > Sent: Saturday, August 23, 2014 4:56 PM > To: qemu-devel > Cc: Gerd Hoffmann; Gonglei (Arei); 758...@bugs.debian.org; Gabriele > Giacone > Subject: [bisected] VNC server can't get all sent chars correctly > > 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? :) > I tested the same command line with the reported Bug, as below:
./qemu-system-x86_64 -vnc :10 -enable-kvm -cpu host -m 1024 --kernel \ /home/linux --initrd /home/initrd.gz --append "locale=en_US keymap=us \ video=vesa:ywrap,mtrr vga=788" And the VNC client I tested are TightVNC and RealVNC. But I could not reproduce this issue. So, I think maybe vncdotool client once send too many characters (and ps2 queue length > PS2_QUEUE_SIZE), which leading to some characters are discarded by QEMU. More test cases will be useful IMHO. Best regards, -Gonglei