[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 5/5] migration: Add yank feature
From: |
Lukas Straub |
Subject: |
[PATCH 5/5] migration: Add yank feature |
Date: |
Mon, 11 May 2020 13:14:50 +0200 |
Add yank option which is passed to the socket-channel.
Signed-off-by: Lukas Straub <address@hidden>
---
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
pgp4BbULPqO8B.pgp
Description: OpenPGP digital signature
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, (continued)
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Dr. David Alan Gilbert, 2020/05/11
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Daniel P . Berrangé, 2020/05/12
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Lukas Straub, 2020/05/15
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Daniel P . Berrangé, 2020/05/15
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Lukas Straub, 2020/05/15
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Daniel P . Berrangé, 2020/05/15
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Lukas Straub, 2020/05/15
- Re: [PATCH 3/5] block/nbd.c: Add yank feature, Daniel P . Berrangé, 2020/05/15
[PATCH 4/5] chardev/char-socket.c: Add yank feature, Lukas Straub, 2020/05/11
[PATCH 5/5] migration: Add yank feature,
Lukas Straub <=
Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Lukas Straub, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Lukas Straub, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Kevin Wolf, 2020/05/13