qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Ryan Harper <ryanh@linux.vnet.ibm.com>,
	Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
	mst@redhat.com, quintela@redhat.com, qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [RFC PATCH 0/4] Fix subsection ambiguity in the migration format
Date: Fri, 29 Jul 2011 16:03:02 +0200	[thread overview]
Message-ID: <4E32BD96.9030806@redhat.com> (raw)
In-Reply-To: <4E2EB522.2000808@codemonkey.ws>

Am 26.07.2011 14:37, schrieb Anthony Liguori:
> On 07/26/2011 07:07 AM, Juan Quintela wrote:
>> Anthony Liguori<anthony@codemonkey.ws>  wrote:
>>> == What we need ==
>>>
>>> We need to decompose migration into three different problems: 1)
>>> serializing device state 2) transforming the device model in order to
>>> satisfy forwards and backwards compatibility 3) encoding the
>>> serialized device model on the wire.
>>
>> I will change this to:
>> - We need to be able to "enable/disable" features of a device.
>>    A.K.A. make -M pc-0.14 work with devices with the same features
>>    than 0.14.  Notice that this is _independent_ of migration.
> 
> In theory, we already have this with qdev flags.
> 
>> - Be able to describe that different features/versions.  This is not the
>>    difficult part, it can be subsections, optional fields, whatever.
>>    What is the difficult part is _knowing_ what fields needs to be on
>>    each version.  That again depends of the device, not migration.
>>
>> - Be able to to do forward/bacward compatibility (and without
>>    comunication both sides is basically impossible).
> 
> Hrm, I'm not sure I agree with these conclusions.
> 
> Management tools should do their best job to create two compatible 
> device models.
> 
> Given two compatible device models, there *may* be differences in the 
> structure of the device models since we evolve things over time.  We may 
> rename a field, change the type, etc.  To support this, we can use 
> filters both on the destination and receive end to do our best to 
> massage the device model into something compatible.
> 
> But creating two creating compatible device models is not the job of the 
> migration protocol.  It's the job of management tools.

I'm not sure if I agree with this.

Let's forget about management tools for a moment, and just think of a
qemu instance with a given set of command line option describing its
devices. Then you start another instance with different options and
-incoming and start a migration. The result will be something, but
definitely not a successfully migrated VM (even though it might look
like one at first).

This is why I believe that the information about which devices to use
actually belongs into the migration data. There's no way to make use of
it with different options.

>>> 5) Once we're here, we can implement the next 5-year format.  That
>>> could be ASN.1 and be bidirectional or whatever makes the most sense.
>>> We could support 50 formats if we wanted to.  As long as the transport
>>> is distinct from the serialization and compat routines, it really
>>> doesn't matter.
>>
>> This means finishing the VMState support, once there, only thing needs
>> to change is "copy" the savevm, and change the "visitors" to whatever
>> else that we need/want.
> 
> There's no need to "finish" VMState to convert to visitors.  It's just 
> sed -e 's:qemu_put_be32:visit_type_int32:g'

Actually I think the real question is whether we want to have VMState or
not. If we do (and I think it's a good thing), then yes, we need to
finish it. If not, then we should revert the parts that are already
there. We shouldn't end up in an inconsistent state where half of qemu
is converted and we don't feel a need to do anything about the other half.

Kevin

  parent reply	other threads:[~2011-07-29 14:00 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-30 15:46 [Qemu-devel] [RFC PATCH 0/4] Fix subsection ambiguity in the migration format Paolo Bonzini
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 1/4] add support for machine models to specify their " Paolo Bonzini
2011-06-30 18:11   ` Michael S. Tsirkin
2011-07-01  6:10     ` Paolo Bonzini
2011-07-29 13:08   ` Anthony Liguori
2011-07-29 14:35     ` Paolo Bonzini
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 2/4] add pc-0.14 machine Paolo Bonzini
2011-08-05 19:26   ` Bruce Rogers
2011-08-05 19:41     ` Anthony Liguori
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 3/4] savevm: define new unambiguous migration format Paolo Bonzini
2011-07-29 13:12   ` Anthony Liguori
2011-07-29 14:35     ` Paolo Bonzini
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 4/4] Partially revert "savevm: fix corruption in vmstate_subsection_load()." Paolo Bonzini
2011-07-25 21:10 ` [Qemu-devel] [RFC PATCH 0/4] Fix subsection ambiguity in the migration format Paolo Bonzini
2011-07-25 23:23   ` Anthony Liguori
2011-07-26  9:42     ` Daniel P. Berrange
2011-07-26  9:48     ` Stefan Hajnoczi
2011-07-26 12:51       ` Stefan Hajnoczi
2011-07-26 13:00         ` Anthony Liguori
2011-07-26 12:07     ` Juan Quintela
2011-07-26 12:37       ` Anthony Liguori
2011-07-26 20:13         ` Juan Quintela
2011-07-26 21:46           ` Anthony Liguori
2011-07-26 22:22             ` Peter Maydell
2011-07-26 23:08               ` Anthony Liguori
2011-07-29 14:03         ` Kevin Wolf [this message]
2011-07-29 14:28           ` Anthony Liguori
2011-07-29 15:18             ` Kevin Wolf
2011-07-29 22:28               ` Anthony Liguori
2011-07-31 10:48                 ` Dor Laor
2011-07-31 11:37                   ` Peter Maydell
2011-07-31 11:45                     ` Dor Laor
2011-07-31 18:46                       ` Christoph Hellwig
2011-07-31 20:43                         ` Dor Laor
2011-07-31 20:55                           ` Anthony Liguori
2011-07-31 23:10                           ` Christoph Hellwig
2011-08-01  0:15                             ` Anthony Liguori
2011-08-01  7:54                               ` Christoph Hellwig
2011-08-01 13:53                                 ` Anthony Liguori
2011-08-04 14:59                                   ` Luiz Capitulino
2011-07-31 20:43                   ` Anthony Liguori
2011-07-31 20:57                     ` Dor Laor
2011-07-31 21:03                       ` Anthony Liguori
2011-07-31 21:25                         ` Dor Laor
2011-07-31 21:49                           ` Anthony Liguori
2011-07-29 13:14   ` Anthony Liguori
2011-07-29 14:49     ` Paolo Bonzini

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=4E32BD96.9030806@redhat.com \
    --to=kwolf@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=ryanh@linux.vnet.ibm.com \
    --cc=stefanha@linux.vnet.ibm.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).