All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	John Snow <jsnow@redhat.com>,
	QEMU Developers <qemu-devel@nongnu.org>,
	qemu-block@nongnu.org, quintela@redhat.com
Subject: Re: [Qemu-devel] [PATCH 3/8] fdc: Introduce fdctrl->phase
Date: Thu, 21 May 2015 10:47:46 +0100	[thread overview]
Message-ID: <20150521094746.GE2129@work-vm> (raw)
In-Reply-To: <20150521094233.GA6143@noname.redhat.com>

* Kevin Wolf (kwolf@redhat.com) wrote:
> Am 20.05.2015 um 14:07 hat Peter Maydell geschrieben:
> > On 20 May 2015 at 12:55, John Snow <jsnow@redhat.com> wrote:
> > > So even if /currently/ we can reconstitute it from the register values,
> > > we may eventually be unable to.
> > >
> > > post_load will work for now, but I fear the case (in ten years) when
> > > someone else cleans up FDC code but fails to realize that the phase is
> > > not explicitly migrated.
> > 
> > I assumed we would only do the post-load thing if the
> > source for migration doesn't migrate phase (however we
> > phrase that in a vmstate struct).
> 
> I think if we extend the VMState, then we have two options. I'm not
> exactly sure how they work in details, but I'll try an educated guess -
> Juan, please correct me if I'm wrong:
> 
> 1. We increase version_id and add the new field at the end. This breaks
>    backwards migration; on forward migration the new field would be
>    initialised with 0 and a post_load handler could check the old
>    version_id to calculate the phase from register bits.
> 
> 2. We add a subsection for the phase, and declare one phase to be the
>    default (most likely the command phase) for which a subsection is not
>    sent. In this case, the destination can't distinguish between a
>    missing subsection because the source was running an old qemu or
>    because it is the default phase. Unclear whether post_load should
>    recalculate the phase or not.

There's another variant;  add a subsection and always send it for new machine
types.

> If the above is correct, I'm afraid that the third option - which
> doesn't address John's (valid) concerns - would be the most reasonable:
> 
> 3. Don't add any VMState fields now and just do the post_load handler.
>    If we ever extend fdc in a way that makes it impossible to
>    reconstruct the phase from other migrated state, we add a subsection
>    that is only sent in cases where it differs from the reconstructed
>    value.

Dave

> 
> Kevin
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  reply	other threads:[~2015-05-21  9:48 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-19 15:35 [Qemu-devel] [PATCH 0/8] fdc: Clean up and fix command processing Kevin Wolf
2015-05-19 15:35 ` [Qemu-devel] [PATCH 1/8] fdc: Rename fdctrl_reset_fifo() to fdctrl_to_command_phase() Kevin Wolf
2015-05-19 20:37   ` John Snow
2015-05-19 15:35 ` [Qemu-devel] [PATCH 2/8] fdc: Rename fdctrl_set_fifo() to fdctrl_to_result_phase() Kevin Wolf
2015-05-19 20:38   ` John Snow
2015-05-19 15:35 ` [Qemu-devel] [PATCH 3/8] fdc: Introduce fdctrl->phase Kevin Wolf
2015-05-19 20:38   ` John Snow
2015-05-19 20:44   ` Peter Maydell
2015-05-19 20:52     ` John Snow
2015-05-19 20:57       ` Peter Maydell
2015-05-20  7:54         ` Kevin Wolf
2015-05-20  8:06           ` Peter Maydell
2015-05-20  8:43             ` Kevin Wolf
2015-05-20  9:24               ` Peter Maydell
2015-05-20 11:55                 ` John Snow
2015-05-20 12:07                   ` Peter Maydell
2015-05-21  9:42                     ` Kevin Wolf
2015-05-21  9:47                       ` Dr. David Alan Gilbert [this message]
2015-05-21 10:11                       ` Peter Maydell
2015-05-21 10:31                         ` Kevin Wolf
2015-05-21 11:09                           ` Markus Armbruster
2015-05-21 11:14                             ` Peter Maydell
2015-05-21 11:37                               ` Dr. David Alan Gilbert
2015-05-19 15:35 ` [Qemu-devel] [PATCH 4/8] fdc: Use phase in fdctrl_write_data() Kevin Wolf
2015-05-19 20:39   ` John Snow
2015-05-19 20:52   ` Peter Maydell
2015-05-19 15:35 ` [Qemu-devel] [PATCH 5/8] fdc: Code cleanup " Kevin Wolf
2015-05-19 20:40   ` John Snow
2015-05-20  8:18     ` Kevin Wolf
2015-05-19 15:36 ` [Qemu-devel] [PATCH 6/8] fdc: Disentangle phases in fdctrl_read_data() Kevin Wolf
2015-05-19 20:40   ` John Snow
2015-05-20  8:25     ` Kevin Wolf
2015-05-20 11:59       ` John Snow
2015-05-19 15:36 ` [Qemu-devel] [PATCH 7/8] fdc: Fix MSR.RQM flag Kevin Wolf
2015-05-19 20:40   ` John Snow
2015-05-20  8:14     ` Kevin Wolf
2015-05-20 11:58       ` John Snow
2015-05-19 15:36 ` [Qemu-devel] [PATCH 8/8] fdc-test: Test state for existing cases more thoroughly Kevin Wolf
2015-05-19 20:41   ` John Snow
2015-05-19 20:37 ` [Qemu-devel] [PATCH 0/8] fdc: Clean up and fix command processing John Snow

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=20150521094746.GE2129@work-vm \
    --to=dgilbert@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.