From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Yury Kotov <yury-kotov@yandex-team.ru>
Cc: Laurent Vivier <lvivier@redhat.com>,
Thomas Huth <thuth@redhat.com>,
Juan Quintela <quintela@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
"open list:All patches CC here" <qemu-devel@nongnu.org>,
"yc-core@yandex-team.ru" <yc-core@yandex-team.ru>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 1/3] migration: Add x-validate-uuid capability
Date: Tue, 3 Sep 2019 18:13:14 +0100 [thread overview]
Message-ID: <20190903171314.GQ2744@work-vm> (raw)
In-Reply-To: <2870661567528763@iva5-c4dd0484b46b.qloud-c.yandex.net>
* Yury Kotov (yury-kotov@yandex-team.ru) wrote:
> 03.09.2019, 14:25, "Dr. David Alan Gilbert" <dgilbert@redhat.com>:
> > * Eric Blake (eblake@redhat.com) wrote:
> >> On 8/27/19 10:36 AM, Yury Kotov wrote:
> >> > 27.08.2019, 17:02, "Eric Blake" <eblake@redhat.com>:
> >> >> On 8/27/19 7:02 AM, Yury Kotov wrote:
> >> >>> This capability realizes simple source validation by UUID.
> >> >>> It's useful for live migration between hosts.
> >> >>>
> >>
> >> >>
> >> >> Any reason why this is marked experimental? It seems useful enough that
> >> >> we could probably just add it as a fully-supported feature (dropping the
> >> >> x- prefix) - but I'll leave that up to the migration maintainers.
> >> >>
> >> >
> >> > I thought that all new capabilities have x- prefix... May be it's really
> >> > unnecessary here, I'm not sure.
> >>
> >> New features that need some testing or possible changes to behavior need
> >> x- to mark them as experimental, so we can make those changes without
> >> worrying about breaking back-compat. But new features that are outright
> >> useful and presumably in their final form, with no further
> >> experimentation needed, can skip going through an x- phase.
> >>
> >> >
> >> >> In fact, do we even need this to be a tunable feature? Why not just
> >> >> always enable it? As long as the UUID is sent in a way that new->old
> >> >> doesn't break the old qemu from receiving the migration stream, and that
> >> >> old->new copes with UUID being absent, then new->new will always benefit
> >> >> from the additional safety check.
> >> >>
> >> >
> >> > In such case we couldn't migrate from e.g. 4.2 to 3.1
> >>
> >> I don't know the migration format enough to know if there is a way for
> >> 4.2 to unconditionally send a UUID as a subsection such that a receiving
> >> 3.1 will ignore the unknown subsection. If so, then you don't need a
> >> knob; if not, then you need something to say whether sending the
> >> subsection is safe (perhaps default on in new machine types, but default
> >> off for machine types that might still be migrated back to 3.1). That's
> >> where I'm hoping the migration experts will chime in.
> >
> > Right; the migration format can't ignore chunks of data; so it does need
> > to know somehow; the choice is either a capability or wiring it to the
> > machine type; my preference is to wire it to the machine type; the
> > arguments are:
> > a) Machine type
> > Pro: libvirt doesn't need to do anything
> > Con: It doesn't protect old machine types
> > It's not really part of the guest state
> >
> > b) Capability
> > Pro: Works on all machine types
> > Con: Libvirt needs to enable it
> >
> > So, no strong preference but I think I prefer (a).
>
> IIUC the (a) option requires to add a piece of code to every machine type.
> This is much more complicated than adding a capability.
Actually it doesn't - you just add a property, default it to true and
then add an entry in hw_compat_4_1 to turn it off for older types.
> If you don't mind, I suggest to keep the current version.
That's OK.
Dave
> >
> > Dave
> >
> >> --
> >> Eric Blake, Principal Software Engineer
> >> Red Hat, Inc. +1-919-301-3226
> >> Virtualization: qemu.org | libvirt.org
> >
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
> Regards,
> Yury
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2019-09-03 17:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-27 12:02 [Qemu-devel] [PATCH 0/3] UUID validation during migration Yury Kotov
2019-08-27 12:02 ` [Qemu-devel] [PATCH 1/3] migration: Add x-validate-uuid capability Yury Kotov
2019-08-27 14:01 ` Eric Blake
2019-08-27 15:36 ` Yury Kotov
2019-08-27 16:18 ` Eric Blake
2019-09-03 11:25 ` Dr. David Alan Gilbert
2019-09-03 16:39 ` Yury Kotov
2019-09-03 17:13 ` Dr. David Alan Gilbert [this message]
2019-09-03 11:34 ` Dr. David Alan Gilbert
2019-08-27 12:02 ` [Qemu-devel] [PATCH 2/3] tests/libqtest: Allow to set expected exit status Yury Kotov
2019-08-27 13:52 ` Marc-André Lureau
2019-08-27 15:23 ` Yury Kotov
2019-08-27 14:03 ` Eric Blake
2019-08-27 15:27 ` Yury Kotov
2019-08-27 12:02 ` [Qemu-devel] [PATCH 3/3] tests/migration: Add a test for x-validate-uuid capability Yury Kotov
2019-09-03 11:21 ` [Qemu-devel] [PATCH 0/3] UUID validation during migration Dr. David Alan Gilbert
2019-09-03 11:45 ` Daniel P. Berrangé
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=20190903171314.GQ2744@work-vm \
--to=dgilbert@redhat.com \
--cc=armbru@redhat.com \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=thuth@redhat.com \
--cc=yc-core@yandex-team.ru \
--cc=yury-kotov@yandex-team.ru \
/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.