Skip to content

Commit

Permalink
migration: Add 'pause-before-switchover' capability
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Reviewed-by: Juan Quintela <[email protected]>
Signed-off-by: Juan Quintela <[email protected]>
  • Loading branch information
dagrh authored and Juan Quintela committed Oct 23, 2017
1 parent 80f8dfd commit 93fbd03
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
10 changes: 10 additions & 0 deletions migration/migration.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions migration/migration.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
5 changes: 4 additions & 1 deletion qapi/migration.json
Original file line number Diff line number Diff line change
Expand Up @@ -341,14 +341,17 @@
# @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:
Expand Down

0 comments on commit 93fbd03

Please sign in to comment.