Add yank option which is passed to the socket-channel. Signed-off-by: Lukas Straub <lukasstra...@web.de> --- migration/channel.c | 2 ++ migration/migration.c | 11 +++++++++++ qapi/migration.json | 17 ++++++++++++++--- 3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/migration/channel.c b/migration/channel.c index 20e4c8e2dc..498af99104 100644 --- a/migration/channel.c +++ b/migration/channel.c @@ -35,6 +35,7 @@ void migration_channel_process_incoming(QIOChannel *ioc) trace_migration_set_incoming_channel( ioc, object_get_typename(OBJECT(ioc))); + qio_channel_set_yank(ioc, s->parameters.yank); if (s->parameters.tls_creds && *s->parameters.tls_creds && !object_dynamic_cast(OBJECT(ioc), @@ -67,6 +68,7 @@ void migration_channel_connect(MigrationState *s, ioc, object_get_typename(OBJECT(ioc)), hostname, error); if (!error) { + qio_channel_set_yank(ioc, s->parameters.yank); if (s->parameters.tls_creds && *s->parameters.tls_creds && !object_dynamic_cast(OBJECT(ioc), diff --git a/migration/migration.c b/migration/migration.c index 187ac0410c..b6f2f82dfb 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -814,6 +814,8 @@ MigrationParameters *qmp_query_migrate_parameters(Error **errp) params->max_postcopy_bandwidth = s->parameters.max_postcopy_bandwidth; params->has_max_cpu_throttle = true; params->max_cpu_throttle = s->parameters.max_cpu_throttle; + params->has_yank = true; + params->yank = s->parameters.yank; params->has_announce_initial = true; params->announce_initial = s->parameters.announce_initial; params->has_announce_max = true; @@ -1364,6 +1366,9 @@ static void migrate_params_test_apply(MigrateSetParameters *params, if (params->has_max_cpu_throttle) { dest->max_cpu_throttle = params->max_cpu_throttle; } + if (params->has_yank) { + dest->yank = params->yank; + } if (params->has_announce_initial) { dest->announce_initial = params->announce_initial; } @@ -1472,6 +1477,9 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp) if (params->has_max_cpu_throttle) { s->parameters.max_cpu_throttle = params->max_cpu_throttle; } + if (params->has_yank) { + s->parameters.yank = params->yank; + } if (params->has_announce_initial) { s->parameters.announce_initial = params->announce_initial; } @@ -3623,6 +3631,8 @@ static Property migration_properties[] = { DEFINE_PROP_UINT8("max-cpu-throttle", MigrationState, parameters.max_cpu_throttle, DEFAULT_MIGRATE_MAX_CPU_THROTTLE), + DEFINE_PROP_BOOL("yank", MigrationState, + parameters.yank, false), DEFINE_PROP_SIZE("announce-initial", MigrationState, parameters.announce_initial, DEFAULT_MIGRATE_ANNOUNCE_INITIAL), @@ -3711,6 +3721,7 @@ static void migration_instance_init(Object *obj) params->has_xbzrle_cache_size = true; params->has_max_postcopy_bandwidth = true; params->has_max_cpu_throttle = true; + params->has_yank = true; params->has_announce_initial = true; params->has_announce_max = true; params->has_announce_rounds = true; diff --git a/qapi/migration.json b/qapi/migration.json index eca2981d0a..ad9e431a8f 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -623,6 +623,9 @@ # will consume more CPU. # Defaults to 1. (Since 5.0) # +# @yank: Shutdown the migration socket when the 'yank' qmp command is +# executed. (Since: 5.1) +# # Since: 2.4 ## { 'enum': 'MigrationParameter', @@ -636,7 +639,7 @@ 'multifd-channels', 'xbzrle-cache-size', 'max-postcopy-bandwidth', 'max-cpu-throttle', 'multifd-compression', - 'multifd-zlib-level' ,'multifd-zstd-level' ] } + 'multifd-zlib-level' ,'multifd-zstd-level', 'yank' ] } ## # @MigrateSetParameters: @@ -747,6 +750,9 @@ # will consume more CPU. # Defaults to 1. (Since 5.0) # +# @yank: Shutdown the migration socket when the 'yank' qmp command is +# executed. (Since: 5.1) +# # Since: 2.4 ## # TODO either fuse back into MigrationParameters, or make @@ -776,7 +782,8 @@ '*max-cpu-throttle': 'int', '*multifd-compression': 'MultiFDCompression', '*multifd-zlib-level': 'int', - '*multifd-zstd-level': 'int' } } + '*multifd-zstd-level': 'int', + '*yank': 'bool'} } ## # @migrate-set-parameters: @@ -907,6 +914,9 @@ # will consume more CPU. # Defaults to 1. (Since 5.0) # +# @yank: Shutdown the migration socket when the 'yank' qmp command is +# executed. (Since: 5.1) +# # Since: 2.4 ## { 'struct': 'MigrationParameters', @@ -934,7 +944,8 @@ '*max-cpu-throttle': 'uint8', '*multifd-compression': 'MultiFDCompression', '*multifd-zlib-level': 'uint8', - '*multifd-zstd-level': 'uint8' } } + '*multifd-zstd-level': 'uint8', + '*yank': 'bool'} } ## # @query-migrate-parameters: -- 2.20.1
pgp7YfpVGZo3F.pgp
Description: OpenPGP digital signature