From: "Michael S. Tsirkin" <mst@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Amit Shah <amit.shah@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
qemu list <qemu-devel@nongnu.org>,
Juan Quintela <quintela@redhat.com>
Subject: [Qemu-devel] Re: new->old version migration
Date: Tue, 8 Feb 2011 08:42:14 +0200 [thread overview]
Message-ID: <20110208064214.GB28096@redhat.com> (raw)
In-Reply-To: <4D50A90C.1060701@codemonkey.ws>
On Mon, Feb 07, 2011 at 08:23:08PM -0600, Anthony Liguori wrote:
> On 02/07/2011 03:52 PM, Michael S. Tsirkin wrote:
> >How does it? We need to know we are saving in 0.13
> >format and skip the new subsection, otherwise
> >0.13 will see a subsection it does not recognize
> >and exit.
>
> If you used subsections for flow control, presumably you would only
> send the new savevm data if you had data buffered.
>
> If you add a qdev property to enable/disable flow control, then if
> it's disabled, you naturally would never send the subsection because
> you'd never buffer data. So no explicit code is needed to support
> migration.
But the result is we get a new property that we can never remove
as any qdev property is part of interface.
> The difficult case is when you truly need to change the savevm
> version. I don't think we have a proper fix for this because
> versions are linear so the proposed patch certainly wouldn't be a
> good way to do it. if flow_control=0 causes savevm 3 to be used
> instead of 4, and then the next_feature=0 causes savevm 4 to be used
> instead of 5, the semantics of flow_control=0,next_feature=1 becomes
> problematic.
>
> But as long as the feature has isolated state, we can solve the
> problem robustly with subsections.
>
> Regards,
>
> Anthony Liguori
I see. I'm unhappy with the facts that
1. if (feature) is spread all over the code instead
of just in migration
2. it is also obfuscated with if (flow_control)
instead of plain if (migrate to qemu < 0.14)
so removing it will be much harder
3. this forces anyone who wants
a VM compatible with qemu 0.13 to also lose data,
even if migration to 0.13 is never attempted.
> >We also need API to add subsections without vmstate,
> >because virtio serial wasn't yet converted.
> >
next prev parent reply other threads:[~2011-02-08 6:42 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-07 16:07 [Qemu-devel] new->old version migration Michael S. Tsirkin
2011-02-07 16:40 ` [Qemu-devel] " Alex Williamson
2011-02-07 16:51 ` Michael S. Tsirkin
2011-02-07 19:39 ` Anthony Liguori
2011-02-07 19:33 ` Anthony Liguori
2011-02-07 19:53 ` Michael S. Tsirkin
2011-02-07 20:56 ` Anthony Liguori
2011-02-07 21:52 ` Michael S. Tsirkin
2011-02-08 2:23 ` Anthony Liguori
2011-02-08 6:42 ` Michael S. Tsirkin [this message]
2011-02-08 7:07 ` Amit Shah
2011-02-08 7:44 ` Anthony Liguori
2011-02-08 7:54 ` Amit Shah
2011-02-08 7:42 ` Anthony Liguori
2011-02-08 11:19 ` Michael S. Tsirkin
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=20110208064214.GB28096@redhat.com \
--to=mst@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=amit.shah@redhat.com \
--cc=anthony@codemonkey.ws \
--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.