From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54172) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un8vY-0003gN-IA for qemu-devel@nongnu.org; Thu, 13 Jun 2013 10:55:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Un8vV-00031H-4z for qemu-devel@nongnu.org; Thu, 13 Jun 2013 10:55:04 -0400 Received: from mail-qc0-x236.google.com ([2607:f8b0:400d:c01::236]:52457) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un8o2-0000Yp-4G for qemu-devel@nongnu.org; Thu, 13 Jun 2013 10:47:18 -0400 Received: by mail-qc0-f182.google.com with SMTP id e10so3579556qcy.13 for ; Thu, 13 Jun 2013 07:47:17 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51B9DB71.3020206@redhat.com> Date: Thu, 13 Jun 2013 10:47:13 -0400 From: Paolo Bonzini MIME-Version: 1.0 References: <1369239012-8180-1-git-send-email-akong@redhat.com> <1369239012-8180-2-git-send-email-akong@redhat.com> <87mwrcct1t.fsf@codemonkey.ws> <20130531123117.GA8400@t430s.nay.redhat.com> <51B99CB1.6020006@suse.de> <51B9BC69.80601@redhat.com> <87wqpyp3ka.fsf@codemonkey.ws> In-Reply-To: <87wqpyp3ka.fsf@codemonkey.ws> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 1/2] ps2: add support of auto-repeat List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: peter.maydell@linaro.org, lilei@linux.vnet.ibm.com, qemu-devel@nongnu.org, kraxel@redhat.com, Amos Kong , lersek@redhat.com, =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= Il 13/06/2013 09:01, Anthony Liguori ha scritto: > Paolo Bonzini writes: > >> Il 13/06/2013 06:19, Andreas Färber ha scritto: >>> Am 31.05.2013 14:31, schrieb Amos Kong: >>>> diff --git a/hw/input/ps2.c b/hw/input/ps2.c >>>> index cdb18e6..fdb9912 100644 >>>> --- a/hw/input/ps2.c >>>> +++ b/hw/input/ps2.c >>>> @@ -615,7 +615,17 @@ static bool ps2_keyboard_repeatstate_needed(void >>>> *opaque) >>>> { >>>> PS2KbdState *s = opaque; >>>> >>>> - return s->repeat_period || s->repeat_delay; >>>> + return s->repeat_period || s->repeat_delay || s->repeat_key || >>>> s->repeat_timer; >>>> +} >>>> + >>>> +static int ps2_kbd_repeatstate_load(QEMUFile *f, void *opaque, int >>>> version_id) >>>> +{ >>>> + PS2KbdState *s = opaque; >>>> + qemu_get_timer(f, s->repeat_timer); >>>> + qemu_mod_timer(s->repeat_timer, qemu_get_clock_ns(vm_clock) + >>>> + muldiv64(get_ticks_per_sec(), s->repeat_period, >>>> 1000)); >>>> + >>>> + return 0; >>>> } >>>> >>>> static bool ps2_keyboard_ledstate_needed(void *opaque) >>>> @@ -638,9 +648,12 @@ static const VMStateDescription >>>> vmstate_ps2_keyboard_repeatstate = { >>>> .version_id = 3, >>>> .minimum_version_id = 2, >>>> .minimum_version_id_old = 2, >>>> + .load_state_old = ps2_kbd_repeatstate_load, >>>> .fields = (VMStateField[]) { >>>> VMSTATE_INT32(repeat_period, PS2KbdState), >>>> VMSTATE_INT32(repeat_delay, PS2KbdState), >>>> + VMSTATE_INT32(repeat_key, PS2KbdState), >>>> + VMSTATE_TIMER(repeat_timer, PS2KbdState), >>> >>> You can't just add fields here, they'd need to be specific to a new >>> version 4. Requested was to make it a subsection instead. >> >> This is already a subsection, and this patch is just a proposal to be >> squashed in this series (which adds the subsection). But I think Amos >> is right and only the period/delay need to be migrated. Otherwise, >> you'll get an endless stream of repeats on the destination. > > Not with seamless migration and spice. Which BTW is broken right now in Fedora, though I didn't investigate who's the culprit. :) > Even with a non-seamless VNC reconnect, if it happens behind the scenes > the release would still be sent. Where is the code for that? Are SDL/GTK/whatnot covered as well? Paolo