[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as
From: |
Gonglei (Arei) |
Subject: |
Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel |
Date: |
Mon, 21 Apr 2014 11:06:25 +0000 |
Hi,
> -----Original Message-----
> From: Gonglei (Arei)
> Sent: Thursday, April 17, 2014 9:16 PM
> To: address@hidden
> Cc: address@hidden; address@hidden; Huangweidong (C); Gonglei
> (Arei)
> Subject: [PATCH RFC] ps2: set the keybord output buffer size as the same as
> kernel
>
> From: Gonglei <address@hidden>
>
> 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>
> ---
> hw/input/ps2.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/input/ps2.c b/hw/input/ps2.c
> index 3412079..a754fef 100644
> --- a/hw/input/ps2.c
> +++ b/hw/input/ps2.c
> @@ -71,7 +71,7 @@
> #define MOUSE_STATUS_ENABLED 0x20
> #define MOUSE_STATUS_SCALE21 0x10
>
> -#define PS2_QUEUE_SIZE 256
> +#define PS2_QUEUE_SIZE 16 /* Keyboard output buffer size */
>
> typedef struct {
> uint8_t data[PS2_QUEUE_SIZE];
> @@ -137,7 +137,7 @@ void ps2_queue(void *opaque, int b)
> PS2State *s = (PS2State *)opaque;
> PS2Queue *q = &s->queue;
>
> - if (q->count >= PS2_QUEUE_SIZE)
> + if (q->count >= PS2_QUEUE_SIZE - 1)
> return;
> q->data[q->wptr] = b;
> if (++q->wptr == PS2_QUEUE_SIZE)
> @@ -375,7 +375,7 @@ static void ps2_mouse_event(void *opaque,
> }
>
> if (!(s->mouse_status & MOUSE_STATUS_REMOTE) &&
> - (s->common.queue.count < (PS2_QUEUE_SIZE - 16))) {
> + (s->common.queue.count < PS2_QUEUE_SIZE)) {
> for(;;) {
> /* if not remote, send event. Multiple events are sent if
> too big deltas */
> --
> 1.6.0.2
>
Ping...
Any comments will be appreciated.
Best regards,
-Gonglei
- [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, arei.gonglei, 2014/04/17
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel,
Gonglei (Arei) <=
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gerd Hoffmann, 2014/04/22
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gonglei (Arei), 2014/04/22
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gerd Hoffmann, 2014/04/22
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Juan Quintela, 2014/04/22
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gonglei (Arei), 2014/04/23
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gerd Hoffmann, 2014/04/23
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gonglei (Arei), 2014/04/23
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gerd Hoffmann, 2014/04/23
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gonglei (Arei), 2014/04/23
- Re: [Qemu-devel] [PATCH RFC] ps2: set the keybord output buffer size as the same as kernel, Gonglei (Arei), 2014/04/23