[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [bisected] VNC server can't get all sent chars correctl
From: |
Gonglei (Arei) |
Subject: |
Re: [Qemu-devel] [bisected] VNC server can't get all sent chars correctly |
Date: |
Mon, 25 Aug 2014 03:19:59 +0000 |
Hi,
> From: Michael Tokarev [mailto:address@hidden
> Sent: Saturday, August 23, 2014 4:56 PM
> To: qemu-devel
> Cc: Gerd Hoffmann; Gonglei (Arei); address@hidden; 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 <address@hidden>
> 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 <address@hidden>
> Reviewed-by: Juan Quintela <address@hidden>
> Signed-off-by: Gerd Hoffmann <address@hidden>
>
>
> 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