summaryrefslogtreecommitdiff
path: root/migration/migration.c
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2015-11-05 18:11:18 +0000
committerJuan Quintela <quintela@redhat.com>2015-11-10 15:00:28 +0100
commitc76201ab52b1dd53823cd81449d17b72224f1623 (patch)
tree2fd45f9768cb9fe05975d87b6d01459f6f2c8ee4 /migration/migration.c
parentc4faeed2313e2bf9aa3694544bd211c15e28c164 (diff)
downloadqemu-c76201ab52b1dd53823cd81449d17b72224f1623.tar.gz
qemu-c76201ab52b1dd53823cd81449d17b72224f1623.tar.bz2
qemu-c76201ab52b1dd53823cd81449d17b72224f1623.zip
Start up a postcopy/listener thread ready for incoming page data
The loading of a device state (during postcopy) may access guest memory that's still on the source machine and thus might need a page fill; split off a separate thread that handles the incoming page data so that the original incoming migration code can finish off the device data. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r--migration/migration.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 38d64ea58b..db3d2dd43e 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1441,6 +1441,12 @@ static int postcopy_start(MigrationState *ms, bool *old_vm_running)
goto fail;
}
+ /*
+ * Make sure the receiver can get incoming pages before we send the rest
+ * of the state
+ */
+ qemu_savevm_send_postcopy_listen(fb);
+
qemu_savevm_state_complete_precopy(fb);
qemu_savevm_send_ping(fb, 3);