From: "Michael S. Tsirkin" <mst@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>, "Fam Zheng" <famz@redhat.com>,
"Anthony Liguori" <aliguori@amazon.com>,
"Juan Quintela" <quintela@redhat.com>,
"Alexander Graf" <agraf@suse.de>,
qemu-devel@nongnu.org, "Stefan Hajnoczi" <stefanha@redhat.com>,
"Amit Shah" <amit.shah@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>,
"Greg Kurz" <gkurz@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH RFC 1/8] virtio: add subsections to the migration stream
Date: Thu, 15 May 2014 15:58:16 +0300 [thread overview]
Message-ID: <20140515125816.GA23167@redhat.com> (raw)
In-Reply-To: <878uq3b4r8.fsf@blackfin.pond.sub.org>
On Thu, May 15, 2014 at 02:33:47PM +0200, Markus Armbruster wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
>
> > On Thu, May 15, 2014 at 11:20:18AM +0200, Andreas Färber wrote:
> >> Am 15.05.2014 09:04, schrieb Greg Kurz:
> >> > On Thu, 15 May 2014 12:16:35 +0530
> >> > Amit Shah <amit.shah@redhat.com> wrote:
> >> >> On (Thu) 15 May 2014 [09:23:51], Michael S. Tsirkin wrote:
> >> >>> On Thu, May 15, 2014 at 11:34:25AM +0530, Amit Shah wrote:
> >> >>>> On (Wed) 14 May 2014 [17:41:38], Greg Kurz wrote:
> >> >>>>> Since each virtio device is streamed in its own section, the idea is to
> >> >>>>> stream subsections between the end of the device section and the start
> >> >>>>> of the next sections. This allows an older QEMU to complain and exit
> >> >>>>> when fed with subsections:
> >> >>>>>
> >> >>>>> Unknown savevm section type 5
> >> >>>>> Error -22 while loading VM state
> >> >>>>
> >> >>>> Please make this configurable -- either via configure or device
> >> >>>> properties. That avoids having to break existing configurations that
> >> >>>> work without this patch.
> >>
> >> Since backwards migration is not supported upstream, wouldn't it be
> >> easiest to just add support for the subsection marker and skipping to
> >> the end of section in that downstream?
> >
> > Backwards and forwards migration need to be supported,
> > customers told us repeatedly.
>
> Can I have world peace and a pony with that?
>
> Given the current state of things, attempting to support backward
> migration is trying to run before you can walk. We need to put
> migration on a more solid footing first.
>
> The migration format is crap, and needs to be replaced.
>
> Reasoning on migration compatibility is entirely manual.
>
> Systematic testing of migration compatibility is done downstream.
>
> Fortunately, there's progress being made on all of the above. Let's not
> sabotage it by biting off yet another mouthful.
>
> > So some downstreams support this
> > and not supporting it upstream just means downstreams need
> > to do their own thing.
> >
> > As importantly, ping-pong migration is the only
> > reliable way to stress migration.
> >
> > So if we want to test cross-version we need it to work
> > both way.
>
> Non sequitur.
>
> > Finally, the real issue and difficulty with cross-version migration is
> > making VM behave in a backwards compatible way. Serializing in a
> > compatible way is a trivial problem, or would be if the code wasn't a
> > mess :)
>
> However, it is.
>
> > Once you do the hard part, breaking migration because of the
> > trivial serialization issue is just silly. And special-casing forward
> > migration does not make code simpler, it really only leads to
> > proliferation of hacks and lack of symmetry.
>
> Bold claim; citation needed.
You are asking for examples of ugly assymetry?
It's easy: grep for .load_state_old.
You have here a bunch of functions loading format that qemu
can no longer produce, with any set of flags.
The only way to make them run is to install two qemu versions side by side,
save from old one and load in the new one.
What, would you guess, is the chance that they actually work?
I'm going to send a patch removing all this stuff, it's
effectively dead code, but this is just one, biggest example.
> > So yes it's a useful feature, and no not supporting it does
> > not help anyway.
>
> Nobody denies reliable backward migration would be useful. However,
> attempting to do every useful feature at once just because they're all
> useful is foolish.
>
> Treating backward migration as strictly secondary concern while we're up
> to the ass in other alligators *can* help, by letting us focus on the
> said other alligators.
>
> I'm not opposed to coding things in ways that help backward migration.
> Speaking of "support", however, is clearly premature and misleading.
I agree it's a secondary concern upstream and your comments really apply
to migration generally. We can't claim that it's properly supported by
the upstream QEMU.
I am merely asking that we don't break cross-version migration
intentionally. I and others also try fix it when we notice it's broken.
In particular I'm not asking that submitters test it.
--
MST
next prev parent reply other threads:[~2014-05-15 12:59 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-14 15:41 [Qemu-devel] [PATCH RFC 0/8] virtio: migrate new properties Greg Kurz
2014-05-14 15:41 ` [Qemu-devel] [PATCH RFC 1/8] virtio: add subsections to the migration stream Greg Kurz
2014-05-15 6:04 ` Amit Shah
2014-05-15 6:23 ` Michael S. Tsirkin
2014-05-15 6:46 ` Amit Shah
2014-05-15 7:04 ` Greg Kurz
2014-05-15 9:20 ` Andreas Färber
2014-05-15 9:52 ` Michael S. Tsirkin
2014-05-15 9:58 ` Andreas Färber
2014-05-15 10:03 ` Michael S. Tsirkin
2014-05-15 10:11 ` Andreas Färber
2014-05-15 10:16 ` Michael S. Tsirkin
2014-05-15 12:00 ` Andreas Färber
2014-05-15 12:20 ` Michael S. Tsirkin
2014-05-15 13:47 ` Markus Armbruster
2014-05-15 13:49 ` Greg Kurz
2014-05-15 12:33 ` Markus Armbruster
2014-05-15 12:58 ` Michael S. Tsirkin [this message]
2014-05-15 13:35 ` Greg Kurz
2014-05-15 10:08 ` Greg Kurz
2014-05-15 10:12 ` Michael S. Tsirkin
2014-05-15 10:21 ` Greg Kurz
2014-05-15 10:16 ` Greg Kurz
2014-05-16 9:14 ` Fam Zheng
2014-05-16 9:22 ` Andreas Färber
2014-05-16 9:40 ` Fam Zheng
2014-05-16 9:48 ` Greg Kurz
2014-05-17 18:29 ` Michael S. Tsirkin
2014-05-15 7:14 ` Michael S. Tsirkin
2014-05-15 6:49 ` Greg Kurz
2014-05-15 6:55 ` Amit Shah
2014-05-15 7:12 ` Michael S. Tsirkin
2014-05-14 15:41 ` [Qemu-devel] [PATCH RFC 2/8] virtio-net: migrate subsections Greg Kurz
2014-05-14 15:41 ` [Qemu-devel] [PATCH RFC 3/8] virtio-blk: " Greg Kurz
2014-05-14 15:42 ` [Qemu-devel] [PATCH RFC 4/8] virtio-scsi: " Greg Kurz
2014-05-14 15:42 ` [Qemu-devel] [PATCH RFC 5/8] virtio-serial: " Greg Kurz
2014-05-14 15:42 ` [Qemu-devel] [PATCH RFC 6/8] virtio-balloon: " Greg Kurz
2014-05-14 15:42 ` [Qemu-devel] [PATCH RFC 7/8] virtio-rng: " Greg Kurz
2014-05-14 15:42 ` [Qemu-devel] [PATCH RFC 8/8] virtio: add endian-ambivalent support to VirtIODevice Greg Kurz
[not found] ` <5384A8D2.8050104@redhat.com>
[not found] ` <20140529111253.4ff55199@bahia.local>
[not found] ` <538708FA.4070309@redhat.com>
2014-06-12 7:43 ` Greg Kurz
2014-06-12 7:54 ` Michael S. Tsirkin
2014-06-12 8:47 ` Greg Kurz
2014-06-12 9:05 ` Michael S. Tsirkin
2014-06-12 9:06 ` Alexander Graf
2014-06-12 8:55 ` Alexander Graf
2014-06-12 9:07 ` Michael S. Tsirkin
2014-06-12 9:08 ` Alexander Graf
2014-06-12 8:55 ` Paolo Bonzini
2014-06-12 8:57 ` Alexander Graf
2014-06-12 9:06 ` Greg Kurz
2014-06-12 9:19 ` Paolo Bonzini
2014-06-12 9:37 ` Michael S. Tsirkin
2014-06-12 9:39 ` Paolo Bonzini
2014-06-12 9:43 ` Alexander Graf
2014-06-12 10:14 ` Greg Kurz
2014-06-12 10:39 ` Alexander Graf
2014-06-12 10:50 ` Greg Kurz
2014-06-12 10:58 ` Alexander Graf
2014-06-12 10:59 ` Michael S. Tsirkin
2014-06-12 11:10 ` Greg Kurz
2014-06-12 10:57 ` Michael S. Tsirkin
2014-06-12 10:56 ` Michael S. Tsirkin
2014-06-12 10:55 ` 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=20140515125816.GA23167@redhat.com \
--to=mst@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aliguori@amazon.com \
--cc=amit.shah@redhat.com \
--cc=armbru@redhat.com \
--cc=famz@redhat.com \
--cc=gkurz@linux.vnet.ibm.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@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).