|
From: | Stefan Berger |
Subject: | Re: [Qemu-devel] [RFC] New Migration Protocol using Visitor Interface |
Date: | Tue, 04 Oct 2011 22:05:02 -0400 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110621 Fedora/3.1.11-1.fc14 Lightning/1.0b3pre Thunderbird/3.1.11 |
On 10/03/2011 09:43 AM, Anthony Liguori wrote:
Hm, if backwards compatibility is what we want to achieve (migrating from Qemu 1.1 to Qemu 1.0) then at least the ASN.1 decoder / encoder should be all done in 1.0, no? Otherwise what would it mean to if 1.0 just skipped types 1.1 sends and doesn't understand?On 10/03/2011 08:24 AM, Michael S. Tsirkin wrote:On Mon, Oct 03, 2011 at 07:51:00AM -0500, Anthony Liguori wrote:Here are some suggestions: - Let's make the protocol be BER directly. As a first step, use a single octet string for the whole of data. Next, start splitting this up.This can't be done without breaking the old style migration protocol. I don't have a problem with that but I do have a problem with repeatedly breaking migration protocol.As long as this is within a release cycle, is this a real problem?I think if we try to fit it within a release we'll either end up with a 2 year long release or a half-broken conversion.I'd rather buy ourselves time by supporting both formats. That way we can remove the old format when we're satisfied with the ASN.1 encoding.
I would have thought that we would write a function that takes the VMStateDescription as an argument and write ASN.1 BER or CER comprising:There are multiple things to consider with compatibility:1) Creating compatible device models. This is a qdev problem and can't be solved in the protocol.2) Ensuring we are sending all the data we need to. I think we solve this problem by autogenerating Visitors from the C definitions of the device structures.
- a header containing the version of the device data - the minimum version required to read the device data - walk the array of VMStateFields and encode the the device dataand similarly a function for walking the fields for decoding of each device state.
So at least I am surprised to hear 'autogeneration' for this particular case...
Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |