qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Yonit Halperin <yhalperi@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"spice-devel@freedesktop.org" <spice-devel@freedesktop.org>
Subject: Re: [Qemu-devel] seamless migration with spice
Date: Mon, 12 Mar 2012 08:57:29 +0100	[thread overview]
Message-ID: <4F5DAC69.6010002@redhat.com> (raw)
In-Reply-To: <4F5CC692.7050002@codemonkey.ws>

  Hi,

>> What about the second part? it's independant of the async issue.
> 
> Isn't this a client problem?  The client has this state, no?

It is state of the client <-> server session.  Today spice client
creates a new session on migration, so there is simply no need to
maintain any state.  Drawback is that everything needs to be resent from
the server to the client.  Thats why we want be able to continue the
spice session, so the client caches will stay valid.

Of course the spice-server on the migration target needs the session
state for that, i.e. know for example which bits the client has cached
which it hasn't.

> If the state is stored in the server, wouldn't it be marshaled as part
> of the server's migration state?

spice-server is stateless today when it comes to migration.  QXL handles
all (device) state, by keeping track of some commands (such as
create/destroy surface) which it needs to transfer on migration, and by
asking spice-server to render all surfaces on migration, which
effectively flushes the spice server state to qxl device memory.

To transfer the client session state there are basically two options:

  (a) transfer it as part of the qemu migration data stream.  I don't
      want have any details about the qemu migration implementation
      and/or protocol in the spice-server library api, which basically
      leaves a ugly "transfer-this-blob-for-me-please" style interface
      as only option.

  (b) transfer it as part of the spice protocol.  As the spice
      client has a connection to both source and target while the
      migration runs we can send session state from the source host via
      spice client to the target host.  This needs some form of
      synchronization, to make sure both vmstate and spice migration
      are completed when qemu on the source machine quits.

I think (b) is the better approach.

cheers,
  Gerd

  parent reply	other threads:[~2012-03-12  7:57 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 [this message]
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
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=4F5DAC69.6010002@redhat.com \
    --to=kraxel@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=qemu-devel@nongnu.org \
    --cc=spice-devel@freedesktop.org \
    --cc=yhalperi@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).