From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SbmdF-0001Hd-V7 for qemu-devel@nongnu.org; Tue, 05 Jun 2012 01:48:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SbmdE-0005J0-9H for qemu-devel@nongnu.org; Tue, 05 Jun 2012 01:48:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37720) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SbmdE-0005Ij-1l for qemu-devel@nongnu.org; Tue, 05 Jun 2012 01:48:40 -0400 From: Yonit Halperin Date: Tue, 5 Jun 2012 08:49:41 +0300 Message-Id: <1338875386-21051-1-git-send-email-yhalperi@redhat.com> Subject: [Qemu-devel] [RFC PATCH 0/5] asynchronous migration state change handlers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Yonit Halperin , aliguori@us.ibm.com, alevy@redhat.com, kraxel@redhat.com Hi, I'm sending this patch series again. This time with an additional patch for setting a migrate_end notifier completion callback for spice migration interface. I've also added more detailed commit messages. This patch series introduces async handlers for notifiers, and integrates them with migration state change notifications. Asynchronous migration completion notifier is essential for allowing spice to cleanly complete the src server connection to the client, and transfer the connection to the target. Currently, as soon as the migration completes, the src qemu can be closed by the management, and spice cannot complete the spice-connection migration. In order to support spice seamless migration, next to these patches, I plan to add: (1) notifier for switching from the live phase of the migration to the non-live phase, before completing savevm. Spice will use this notification to "finalize" the connection to the client: send and receive all in-flight data. (2) add vmstates for spice data that need to be migrated, e.g., usb/agent/smartcard buffers that were sent from the client and haven't been written to device yet. We would also want to migrate data that will allow us to continue the new spice connection from the same point the old one stopped. Without requiring special treatment in the client side. Regards, Yonit. Yonit Halperin (5): notifiers: add support for async notifiers handlers migration: moving migration start code to a separated routine migration: moving migration completion code to a separated routine migration: replace migration state change notifier with async notifiers spice: turn spice "migration end" handler to be async input.c | 2 +- migration.c | 154 ++++++++++++++++++++++++++++++++++++++++--------------- migration.h | 11 +++- notify.c | 78 ++++++++++++++++++++++++++-- notify.h | 55 ++++++++++++++++++-- qemu-timer.c | 2 +- ui/spice-core.c | 58 +++++++++++++++------ vl.c | 2 +- 8 files changed, 290 insertions(+), 72 deletions(-) -- 1.7.7.6