[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH spice-server 00/13] semi-seamless migration v2 (RHBZ

From: Yonit Halperin
Subject: [Qemu-devel] [PATCH spice-server 00/13] semi-seamless migration v2 (RHBZ #738266, 725009)
Date: Wed, 21 Sep 2011 18:51:10 +0300

same as the previous version with the following changes:

(1) I'm sending only the spice-server patches. I will send the client fixes 
    (and then I will move the "Release 0.8.3" patch to the head).
(2) migration interface changes:
    * spice_server_migrate_connect was added.
      It is called on client_migrate_info cmd, if spice-server is new (instead 
of spice_server_migrate_info).
    * migrate_end_complete callback was added to the migration interface.
      In case we will need it for future seamless migration implementation
    * bump release to 0.8.3
(3) fall back to the switch host scheme in case of client failure to connect 
the target
(4) fix accessing the wrong ticket in the target side (legacy from old seamless 
migration code)
(5) fix not calling to migrate_connect_complete callback when no client is 


Here is a summary of the new migration scheme (copied from the commit msg of 
the first patch)
    migration source side
    (1) spice_server_migrate_connect (*): tell client to link
        to the target side - send SPICE_MSG_MAIN_MIGRATE_BEGIN.
        It will be called on client_migrate_info cmd. client_migrate_info is 
    (2) Complete client_migrate_info only when the client has been connected
        to the target - wait for 
    (3) spice_server_migrate_end: tell client migration it can switch to the 
target - send
    (4) client cleans up all data related to the connection to the source and 
switches to the target.
    migration target side
    (1) the server identifies itself as a migraiton target since the client is 
linked with (connection_id != 0)
    (2) server doesn't start the channels' logic (channel->link) till it 
        from the client.
    *   After migration starts, the target qemu is blocked and cannot accept 
new spice client
        connections. Thus, we trigger the connection to the target upon 

Yonit Halperin (13):
  server/spice.h: semi-seamless migration interface, RHBZ #738266
  server: handle migration interface addition
  configure: spice-protocol >= 0.8.2 (semi-seamless migration protocol)
  server,proto: tell the client to connect to the migration target
    before migraton starts
  spice.proto: add SPICE_MSG_MAIN_MIGRATE_END &
  server: send SPICE_MSG_MAIN_MIGRATE_END on spice_server_migrate_end
  server: move SPICE_MSG_MAIN_INIT sending code to a separate routine
  server: move the linking of channels to a separate routine
  server: handling semi-seamless migration in the target side
  server: call migrate_connect_complete callback when no client is
  server: turn spice_server_migrate_start into a valid call
  server: fall back to switch host scheme in case semi-seamless
    connection to target fails
  Release 0.8.3

 NEWS                        |    7 +
 common/messages.h           |    2 +
 configure.ac                |    4 +-
 server/reds.c               |  545 +++++++++++++++++++++++++++++++++----------
 server/reds.h               |    4 +
 server/spice-experimental.h |    3 -
 server/spice-server.syms    |    4 +
 server/spice.h              |   29 +++-
 spice.proto                 |    9 +-
 9 files changed, 474 insertions(+), 133 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]