]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
migration: Add 'pause-before-switchover' capability
authorDr. David Alan Gilbert <dgilbert@redhat.com>
Fri, 20 Oct 2017 09:05:50 +0000 (10:05 +0100)
committerJuan Quintela <quintela@redhat.com>
Mon, 23 Oct 2017 16:03:27 +0000 (18:03 +0200)
When 'pause-before-switchover' is enabled, the outgoing migration
will pause before invalidating the block devices and serializing
the device state.
At this point the management layer gets the chance to clean up any
device jobs or other device users before the migration completes.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/migration.c
migration/migration.h
qapi/migration.json

index 3feffb5e265020773ebaa1515e233075ac37e2f4..c041ec7aedf8b0cde0ffd3468c292f8f0ede3648 100644 (file)
@@ -1511,6 +1511,16 @@ bool migrate_use_multifd(void)
     return s->enabled_capabilities[MIGRATION_CAPABILITY_X_MULTIFD];
 }
 
+bool migrate_pause_before_switchover(void)
+{
+    MigrationState *s;
+
+    s = migrate_get_current();
+
+    return s->enabled_capabilities[
+        MIGRATION_CAPABILITY_PAUSE_BEFORE_SWITCHOVER];
+}
+
 int migrate_multifd_channels(void)
 {
     MigrationState *s;
index b83cceadc443fb31aa313df90d28ba83ed2077e9..969866303e1c52759dadd04779866a94a8d2ae19 100644 (file)
@@ -177,6 +177,7 @@ bool migrate_zero_blocks(void);
 
 bool migrate_auto_converge(void);
 bool migrate_use_multifd(void);
+bool migrate_pause_before_switchover(void);
 int migrate_multifd_channels(void);
 int migrate_multifd_page_count(void);
 
index f8b365e3f516de4ae460943d1e88a261d70878f1..4960231ba2b6fdfd4fea91b4622f53b21bf1b136 100644 (file)
 # @return-path: If enabled, migration will use the return path even
 #               for precopy. (since 2.10)
 #
+# @pause-before-switchover: Pause outgoing migration before serialising device
+#          state and before disabling block IO (since 2.11)
+#
 # @x-multifd: Use more than one fd for migration (since 2.11)
 #
 # Since: 1.2
 { 'enum': 'MigrationCapability',
   'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks',
            'compress', 'events', 'postcopy-ram', 'x-colo', 'release-ram',
-           'block', 'return-path', 'x-multifd' ] }
+           'block', 'return-path', 'pause-before-switchover', 'x-multifd' ] }
 
 ##
 # @MigrationCapabilityStatus: