summaryrefslogtreecommitdiffstats
path: root/migration
diff options
context:
space:
mode:
authorDr. David Alan Gilbert2017-10-20 11:05:50 +0200
committerJuan Quintela2017-10-23 18:03:27 +0200
commit93fbd0314ec060ffaf90169a06d5737fa97ffb25 (patch)
treea7e5569ec2d4cee4ba3347db9fbf86d7e6e245b4 /migration
parentmigration: Make cache_init() take an error parameter (diff)
downloadqemu-93fbd0314ec060ffaf90169a06d5737fa97ffb25.tar.gz
qemu-93fbd0314ec060ffaf90169a06d5737fa97ffb25.tar.xz
qemu-93fbd0314ec060ffaf90169a06d5737fa97ffb25.zip
migration: Add 'pause-before-switchover' capability
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>
Diffstat (limited to 'migration')
-rw-r--r--migration/migration.c10
-rw-r--r--migration/migration.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 3feffb5e26..c041ec7aed 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -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;
diff --git a/migration/migration.h b/migration/migration.h
index b83cceadc4..969866303e 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -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);