From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] [PATCH v2 3/5] hpet 'driftfix': add fields to HPETTimer and VMStateDescription Date: Fri, 08 Apr 2011 10:47:38 -0500 Message-ID: <4D9F2E1A.6030807@codemonkey.ws> References: <1302276042-3497-1-git-send-email-uobergfe@redhat.com> <1302276042-3497-4-git-send-email-uobergfe@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, aliguori@us.ibm.com, kvm@vger.kernel.org, jan.kiszka@siemens.com, gcosta@redhat.com, avi@redhat.com To: Ulrich Obergfell Return-path: Received: from mail-iw0-f174.google.com ([209.85.214.174]:50407 "EHLO mail-iw0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752575Ab1DHPrm (ORCPT ); Fri, 8 Apr 2011 11:47:42 -0400 Received: by iwn34 with SMTP id 34so3584464iwn.19 for ; Fri, 08 Apr 2011 08:47:42 -0700 (PDT) In-Reply-To: <1302276042-3497-4-git-send-email-uobergfe@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 04/08/2011 10:20 AM, Ulrich Obergfell wrote: > Signed-off-by: Ulrich Obergfell > --- > hw/hpet.c | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/hw/hpet.c b/hw/hpet.c > index 45847ed..c150da5 100644 > --- a/hw/hpet.c > +++ b/hw/hpet.c > @@ -55,6 +55,11 @@ typedef struct HPETTimer { /* timers */ > uint8_t wrap_flag; /* timer pop will indicate wrap for one-shot 32-bit > * mode. Next pop will be actual timer expiration. > */ > + uint64_t saved_period; > + uint64_t ticks_not_accounted; > + uint32_t irqs_to_inject; > + uint32_t irq_rate; > + uint32_t divisor; > } HPETTimer; > > typedef struct HPETState { > @@ -248,7 +253,7 @@ static int hpet_post_load(void *opaque, int version_id) > > static const VMStateDescription vmstate_hpet_timer = { > .name = "hpet_timer", > - .version_id = 1, > + .version_id = 3, Why jump from 1 to 3? > .minimum_version_id = 1, > .minimum_version_id_old = 1, > .fields = (VMStateField []) { > @@ -258,6 +263,11 @@ static const VMStateDescription vmstate_hpet_timer = { > VMSTATE_UINT64(fsb, HPETTimer), > VMSTATE_UINT64(period, HPETTimer), > VMSTATE_UINT8(wrap_flag, HPETTimer), > + VMSTATE_UINT64_V(saved_period, HPETTimer, 3), > + VMSTATE_UINT64_V(ticks_not_accounted, HPETTimer, 3), > + VMSTATE_UINT32_V(irqs_to_inject, HPETTimer, 3), > + VMSTATE_UINT32_V(irq_rate, HPETTimer, 3), > + VMSTATE_UINT32_V(divisor, HPETTimer, 3), We ought to be able to use a subsection keyed off of whether any ticks are currently accumulated, no? Regards, Anthony Liguori > VMSTATE_TIMER(qemu_timer, HPETTimer), > VMSTATE_END_OF_LIST() > } > @@ -265,7 +275,7 @@ static const VMStateDescription vmstate_hpet_timer = { > > static const VMStateDescription vmstate_hpet = { > .name = "hpet", > - .version_id = 2, > + .version_id = 3, > .minimum_version_id = 1, > .minimum_version_id_old = 1, > .pre_save = hpet_pre_save,