From: Avi Kivity <avi@redhat.com>
To: Glauber Costa <glommer@redhat.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
kvm@vger.kernel.org, qemu-devel@nongnu.org,
jan kiszka <jan.kiszka@siemens.com>,
Ulrich Obergfell <uobergfe@redhat.com>,
gcosta@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 3/5] hpet 'driftfix': add fields to HPETTimer and VMStateDescription
Date: Mon, 11 Apr 2011 16:43:38 +0300 [thread overview]
Message-ID: <4DA3058A.6070008@redhat.com> (raw)
In-Reply-To: <1302529181.3021.13.camel@mothafucka.localdomain>
On 04/11/2011 04:39 PM, Glauber Costa wrote:
> On Mon, 2011-04-11 at 08:10 -0500, Anthony Liguori wrote:
> > On 04/11/2011 04:08 AM, Avi Kivity wrote:
> > > On 04/11/2011 12:06 PM, Ulrich Obergfell wrote:
> > >> >> 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?
> > >>
> > >>
> > >> Anthony,
> > >>
> > >> I'm not sure if I understand your question correctly. Are you suggesting
> > >> to migrate the driftfix-related state conditionally / only if there are
> > >> any ticks accumulated in 'ticks_not_accounted' and 'irqs_to_inject' ?
> > >>
> > >> The size of the driftfix-related state is 28 bytes per timer and we have
> > >> 32 timers per HPETState, i.e. 896 additional bytes per HPETState. With a
> > >> maximum number of 8 HPET blocks (HPETState), this amounts to 7168 bytes.
> > >> Hence, unconditional migration of the driftfix-related state should not
> > >> cause significant additional overhead.
> > >>
> > >
> > > It's not about overhead.
> > >
> > >> Maybe I missed something. Could you please explain which benefit you see
> > >> in using a subsection ?
> > >
> > > In the common case of there being no drift, you can migrate from a
> > > qemu that supports driftfix to a qemu that doesn't.
> > >
> >
> > Right, subsections are a trick. The idea is that when you introduce new
> > state for a device model that is not always going to be set, when you do
> > the migration, you detect whether the state is set or not and if it's
> > not set, instead of sending empty versions of that state (i.e.
> > missed_ticks=0) you just don't send the new state at all.
> >
> > This means that you can migrate to an older version of QEMU provided the
> > migration would work correctly.
>
> Using subsections and testing for hpet option being disabled vs enabled,
> is fine. But checking for the existence of drift, like you suggested (or
> at least how I understood you), is very tricky. It is expected to change
> many times during guest lifetime, and would make our migration
> predictability something Heisenberg would be proud of.
First, I'd expect no drift under normal circumstances, at least without
overcommit. We may also allow a small amount of drift to pass migration
(we lost time during the last phase anyway).
Second, the problem only occurs on new->old migrations.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2011-04-11 13:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-08 15:20 [Qemu-devel] [PATCH v2 0/5] hpet 'driftfix': alleviate time drift with HPET periodic timers Ulrich Obergfell
2011-04-08 15:20 ` [Qemu-devel] [PATCH v2 1/5] hpet 'driftfix': add hooks required to detect coalesced interrupts (x86 apic only) Ulrich Obergfell
2011-04-08 15:46 ` Anthony Liguori
2011-04-08 15:51 ` [Qemu-devel] " Jan Kiszka
2011-04-08 15:20 ` [Qemu-devel] [PATCH v2 2/5] hpet 'driftfix': add driftfix property to HPETState and DeviceInfo Ulrich Obergfell
2011-04-08 15:20 ` [Qemu-devel] [PATCH v2 3/5] hpet 'driftfix': add fields to HPETTimer and VMStateDescription Ulrich Obergfell
2011-04-08 15:47 ` Anthony Liguori
2011-04-11 8:24 ` Ulrich Obergfell
2011-04-11 9:06 ` Ulrich Obergfell
2011-04-11 9:08 ` Avi Kivity
2011-04-11 13:10 ` Anthony Liguori
2011-04-11 13:39 ` Glauber Costa
2011-04-11 13:43 ` Avi Kivity [this message]
2011-04-11 13:47 ` Anthony Liguori
2011-04-11 13:57 ` Glauber Costa
2011-04-11 13:10 ` Anthony Liguori
2011-04-08 15:20 ` [Qemu-devel] [PATCH v2 4/5] hpet 'driftfix': add code in update_irq() to detect coalesced interrupts (x86 apic only) Ulrich Obergfell
2011-04-08 15:20 ` [Qemu-devel] [PATCH v2 5/5] hpet 'driftfix': add code in hpet_timer() to compensate delayed callbacks and coalesced interrupts Ulrich Obergfell
2011-04-08 15:54 ` [Qemu-devel] " Jan Kiszka
2011-04-08 16:08 ` Glauber Costa
2011-04-08 16:12 ` Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DA3058A.6070008@redhat.com \
--to=avi@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=gcosta@redhat.com \
--cc=glommer@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=uobergfe@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).