qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Peter Lieven <pl@kamp.de>, quintela@redhat.com
Cc: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] Migration capability negotation
Date: Fri, 25 Oct 2013 06:42:34 +0100	[thread overview]
Message-ID: <526A04CA.3050705@redhat.com> (raw)
In-Reply-To: <E442E615-7832-413D-A1E8-A69D26A84A3D@kamp.de>

[-- Attachment #1: Type: text/plain, Size: 2262 bytes --]

On 10/25/2013 04:27 AM, Peter Lieven wrote:

> Ok, one way direction - i forgot about this paradigm.
> 
> 2 thoughts:
> 
> a) a send-capabilities capability that "stores" the capabilities that where
> used when savevm was used. I would implement a special segment
> right at the beginning of the data stream that has all capabilities listed that
> where set and that ultimately must be supported to import a saved state
> under any circumstances. capabilities that are only have a meaning at
> the source VM should not be set. if there is an unsupported capability
> set the import can be aborted right at the beginning.

Sounds reasonable; but ideally, it would either have to be in such a way
that doesn't break back-compat with older qemu, or else you have
invented a new file format; and once you invent a new file format, we
might as well make the file format sane by being FULLY self-describing
(see also Alexander Graf's work from KVM forum on adding a migrate-debug
device).  That is, don't just require the same capabilities, but also
require all other command line arguments to be sane in comparison to
what the savevm image was using.

> 
> b) an extension the the qmp-migrate-capabilities or a new command that give
> the controlling process (e.g. libvirt) a hint which features are a good thing to turn on
> if they are supported on both sides (e.g. zero-blocks in block-migration).

Not really needed.  New capabilities must be off by default (back-compat
reasons), so the only time they will be turned on at the source is if
the management (such as libvirt) is smart enough to know what the
capability does; once you can assume that, you can also assume the
management knows how to set up the destination properly.  Which is why
what we have already works (making management do all the negotiation
correctly).  Yes, maybe qemu could make it easier or more foolproof, but
since management already has to handle the job (particularly because
management might be dealing with older qemu that doesn't have the
ease-of-use additions), I'm not sure the effort of extra code in qemu is
worth the effort.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]

  reply	other threads:[~2013-10-25  5:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-24 18:39 [Qemu-devel] [RFC] Migration capability negotation Peter Lieven
2013-10-24 21:32 ` Eric Blake
2013-10-24 23:37 ` Juan Quintela
2013-10-25  3:27   ` Peter Lieven
2013-10-25  5:42     ` Eric Blake [this message]
2013-10-25  5:55       ` Peter Lieven

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=526A04CA.3050705@redhat.com \
    --to=eblake@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pl@kamp.de \
    --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 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).