qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alon Levy <alevy@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Anthony Liguori <anthony@codemonkey.ws>,
	Hans de Goede <hdegoede@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"spice-devel@freedesktop.org" <spice-devel@freedesktop.org>
Subject: Re: [Qemu-devel] [Spice-devel]  seamless migration with spice
Date: Mon, 12 Mar 2012 12:03:07 +0200	[thread overview]
Message-ID: <20120312100307.GD6256@garlic> (raw)
In-Reply-To: <4F5DC604.9010702@redhat.com>

On Mon, Mar 12, 2012 at 10:46:44AM +0100, Gerd Hoffmann wrote:
>   Hi,
> 
> > The problem with (b) is, that iirc the way b was implemented in the past
> > was still the big blob approach, but then pass the blob through the client,
> > which means an evil client could modify it, causing all sorts of
> > "interesting"
> > behavior inside spice-server. Since we're re-implementing this to me the
> > send a blob through the client approach is simply not acceptable from a
> > security pov, also see my previous mail in this thread.
> 
> Agree.  It should be a normal spice message which goes through the spice
> marshaller for parsing & sanity checking.
> 
> > I disagree. Note that there is more info to send over then just which
> > surfaces / images are cached by the client. There also is things like
> > partial complete agent channel messages, including how much bytes must
> > be read
> > to complete the command, etc.
> 
> Is there a complete list of the session state we need to save?
> 
> > IMHO (b) would only be acceptable if the data send through the client stops
> > becoming a blob.
> 
> Using (a) to send a blob isn't better.

Actually, we discussed this in the past and one benefit is that network
between source and target qemu would be fast (otherwise migration
wouldn't work in the first place), as opposed to source->client and
client->dest. Additionally you save one transaction.

> 
> > Instead the client could simply send a list of all
> > surface ids,
> > etc. which it has cached after it connects to / starts using the new
> > host. Note
> > that the old hosts needs to send nothing for this, this is info the
> > client already
> > has, also removing the need for synchronization.
> 
> Yes, some session state is known to the client anyway so we don't need a
> source <-> target channel for them.
> 
> > As for certain other
> > data, such
> > as (but not limited to) partially parsed agent messages, these should be
> > send through the regular vmstate methods IMHO.
> 
> That isn't easy to handle via vmstate, at least as soon as this goes
> beyond a fixed number of fields aka 'migrate over this struct for me'.
> Think multiple spice clients connected at the same time.

Migrate this struct n times for me.

> 
> > 1) Do (a), sending everything that way
> > 2) Do (a) sending non client state that way; and
> >    let the client send state like which surfaces it has cached
> >    when the new session starts.
> 
> I think we have to look at each piece of state information needed by the
> target and look how to handle this best.
> 
> cheers,
>   Gerd
> 
> 

  reply	other threads:[~2012-03-12 10:03 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-11 13:16 [Qemu-devel] seamless migration with spice Yonit Halperin
2012-03-11 14:18 ` Anthony Liguori
2012-03-11 15:25   ` Alon Levy
2012-03-11 15:36     ` Anthony Liguori
2012-03-11 19:11       ` Yonit Halperin
2012-03-12  7:57       ` Gerd Hoffmann
2012-03-12  8:51         ` [Qemu-devel] [Spice-devel] " Hans de Goede
2012-03-12  9:46           ` Gerd Hoffmann
2012-03-12 10:03             ` Alon Levy [this message]
2012-03-12 10:26               ` Gerd Hoffmann
2012-03-12 11:29                 ` Alon Levy
2012-03-12 11:34                   ` Gerd Hoffmann
2012-03-12 11:45                     ` Alon Levy
2012-03-12 12:44                       ` Gerd Hoffmann
2012-03-12 14:24                         ` Alon Levy
2012-03-12 14:35                           ` Alon Levy
2012-03-12 11:23             ` Hans de Goede
2012-03-12 12:21               ` Gerd Hoffmann
2012-03-12 12:47             ` Yonit Halperin
2012-03-12 13:50               ` Gerd Hoffmann
2012-03-12 18:45                 ` Yonit Halperin
2012-03-13  6:40                   ` Gerd Hoffmann
2012-03-13  6:52                     ` Yonit Halperin
2012-03-13  7:40                       ` Gerd Hoffmann
2012-03-12 11:39           ` David Jaša
2012-03-12  8:42 ` Hans de Goede

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=20120312100307.GD6256@garlic \
    --to=alevy@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=hdegoede@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=spice-devel@freedesktop.org \
    /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).