Message ID | 1429089983-24644-14-git-send-email-liang.z.li@intel.com |
---|---|
State | New |
Headers | show |
* Liang Li (liang.z.li@intel.com) wrote: > Add the qmp commands to tune and query the parameters used in live > migration. Hi, Do you know if there's anyone working on libvirt code to drive this interface and turn on your compression code? Dave > > Signed-off-by: Liang Li <liang.z.li@intel.com> > Signed-off-by: Yang Zhang <yang.z.zhang@intel.com> > --- > migration/migration.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ > qapi-schema.json | 45 ++++++++++++++++++++++++++++++++++++++++ > qmp-commands.hx | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 158 insertions(+) > > diff --git a/migration/migration.c b/migration/migration.c > index 533717c..8732803 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -188,6 +188,21 @@ MigrationCapabilityStatusList *qmp_query_migrate_capabilities(Error **errp) > return head; > } > > +MigrationParameters *qmp_query_migrate_parameters(Error **errp) > +{ > + MigrationParameters *params; > + MigrationState *s = migrate_get_current(); > + > + params = g_malloc0(sizeof(*params)); > + params->compress_level = s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL]; > + params->compress_threads = > + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS]; > + params->decompress_threads = > + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS]; > + > + return params; > +} > + > static void get_xbzrle_cache_stats(MigrationInfo *info) > { > if (migrate_use_xbzrle()) { > @@ -301,6 +316,47 @@ void qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params, > } > } > > +void qmp_migrate_set_parameters(bool has_compress_level, > + int64_t compress_level, > + bool has_compress_threads, > + int64_t compress_threads, > + bool has_decompress_threads, > + int64_t decompress_threads, Error **errp) > +{ > + MigrationState *s = migrate_get_current(); > + > + if (has_compress_level && (compress_level < 0 || compress_level > 9)) { > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, "compress_level", > + "a value in range [0, 9]"); > + return; > + } > + if (has_compress_threads && > + (compress_threads < 1 || compress_threads > 255)) { > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > + "compress_threads", > + "a value in range [1, 255]"); > + return; > + } > + if (has_decompress_threads && > + (decompress_threads < 1 || decompress_threads > 255)) { > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > + "decompress_threads", > + "a value in range [1, 255]"); > + return; > + } > + > + if (has_compress_level) { > + s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL] = compress_level; > + } > + if (has_compress_threads) { > + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS] = compress_threads; > + } > + if (has_decompress_threads) { > + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS] = > + decompress_threads; > + } > +} > + > /* shared migration helpers */ > > static void migrate_set_state(MigrationState *s, int old_state, int new_state) > diff --git a/qapi-schema.json b/qapi-schema.json > index 121fcc7..579801b 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -592,6 +592,51 @@ > { 'enum': 'MigrationParameter', > 'data': ['compress-level', 'compress-threads', 'decompress-threads'] } > > +# > +# @migrate-set-parameters > +# > +# Set the following migration parameters > +# > +# @compress-level: compression level > +# > +# @compress-threads: compression thread count > +# > +# @decompress-threads: decompression thread count > +# > +# Since: 2.3 > +## > +{ 'command': 'migrate-set-parameters', > + 'data': { '*compress-level': 'int', > + '*compress-threads': 'int', > + '*decompress-threads': 'int'} } > + > +# > +# @MigrationParameters > +# > +# @compress-level: compression level > +# > +# @compress-threads: compression thread count > +# > +# @decompress-threads: decompression thread count > +# > +# Since: 2.3 > +## > +{ 'type': 'MigrationParameters', > + 'data': { 'compress-level': 'int', > + 'compress-threads': 'int', > + 'decompress-threads': 'int'} } > +## > +# @query-migrate-parameters > +# > +# Returns information about the current migration parameters > +# > +# Returns: @MigrationParameters > +# > +# Since: 2.3 > +## > +{ 'command': 'query-migrate-parameters', > + 'returns': 'MigrationParameters' } > + > ## > # @MouseInfo: > # > diff --git a/qmp-commands.hx b/qmp-commands.hx > index 3a42ad0..8fcf5a8 100644 > --- a/qmp-commands.hx > +++ b/qmp-commands.hx > @@ -3320,6 +3320,63 @@ EQMP > }, > > SQMP > +migrate-set-parameters > +---------------------- > + > +Set migration parameters > + > +- "compress-level": set compression level during migration (json-int) > +- "compress-threads": set compression thread count for migration (json-int) > +- "decompress-threads": set decompression thread count for migration (json-int) > + > +Arguments: > + > +Example: > + > +-> { "execute": "migrate-set-parameters" , "arguments": > + { "compress-level": 1 } } > + > +EQMP > + > + { > + .name = "migrate-set-parameters", > + .args_type = > + "compress-level:i?,compress-threads:i?,decompress-threads:i?", > + .mhandler.cmd_new = qmp_marshal_input_migrate_set_parameters, > + }, > +SQMP > +query-migrate-parameters > +------------------------ > + > +Query current migration parameters > + > +- "parameters": migration parameters value > + - "compress-level" : compression level value (json-int) > + - "compress-threads" : compression thread count value (json-int) > + - "decompress-threads" : decompression thread count value (json-int) > + > +Arguments: > + > +Example: > + > +-> { "execute": "query-migrate-parameters" } > +<- { > + "return": { > + "decompress-threads", 2, > + "compress-threads", 8, > + "compress-level", 1 > + } > + } > + > +EQMP > + > + { > + .name = "query-migrate-parameters", > + .args_type = "", > + .mhandler.cmd_new = qmp_marshal_input_query_migrate_parameters, > + }, > + > +SQMP > query-balloon > ------------- > > -- > 1.9.1 > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> > * Liang Li (liang.z.li@intel.com) wrote: > > Add the qmp commands to tune and query the parameters used in live > > migration. > > Hi, > Do you know if there's anyone working on libvirt code to drive this interface > and turn on your compression code? > Yes, I have confirmed that one person of Intel are working on this. Liang > Dave > > > > > Signed-off-by: Liang Li <liang.z.li@intel.com> > > Signed-off-by: Yang Zhang <yang.z.zhang@intel.com> > > --- > > migration/migration.c | 56 > ++++++++++++++++++++++++++++++++++++++++++++++++++ > > qapi-schema.json | 45 > ++++++++++++++++++++++++++++++++++++++++ > > qmp-commands.hx | 57 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 158 insertions(+) > > > > diff --git a/migration/migration.c b/migration/migration.c index > > 533717c..8732803 100644 > > --- a/migration/migration.c > > +++ b/migration/migration.c > > @@ -188,6 +188,21 @@ MigrationCapabilityStatusList > *qmp_query_migrate_capabilities(Error **errp) > > return head; > > } > > > > +MigrationParameters *qmp_query_migrate_parameters(Error **errp) { > > + MigrationParameters *params; > > + MigrationState *s = migrate_get_current(); > > + > > + params = g_malloc0(sizeof(*params)); > > + params->compress_level = s- > >parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL]; > > + params->compress_threads = > > + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS]; > > + params->decompress_threads = > > + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS]; > > + > > + return params; > > +} > > + > > static void get_xbzrle_cache_stats(MigrationInfo *info) { > > if (migrate_use_xbzrle()) { > > @@ -301,6 +316,47 @@ void > qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params, > > } > > } > > > > +void qmp_migrate_set_parameters(bool has_compress_level, > > + int64_t compress_level, > > + bool has_compress_threads, > > + int64_t compress_threads, > > + bool has_decompress_threads, > > + int64_t decompress_threads, Error > > +**errp) { > > + MigrationState *s = migrate_get_current(); > > + > > + if (has_compress_level && (compress_level < 0 || compress_level > 9)) > { > > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > "compress_level", > > + "a value in range [0, 9]"); > > + return; > > + } > > + if (has_compress_threads && > > + (compress_threads < 1 || compress_threads > 255)) { > > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > > + "compress_threads", > > + "a value in range [1, 255]"); > > + return; > > + } > > + if (has_decompress_threads && > > + (decompress_threads < 1 || decompress_threads > 255)) { > > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > > + "decompress_threads", > > + "a value in range [1, 255]"); > > + return; > > + } > > + > > + if (has_compress_level) { > > + s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL] = > compress_level; > > + } > > + if (has_compress_threads) { > > + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS] = > compress_threads; > > + } > > + if (has_decompress_threads) { > > + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS] = > > + decompress_threads; > > + } > > +} > > + > > /* shared migration helpers */ > > > > static void migrate_set_state(MigrationState *s, int old_state, int > > new_state) diff --git a/qapi-schema.json b/qapi-schema.json index > > 121fcc7..579801b 100644 > > --- a/qapi-schema.json > > +++ b/qapi-schema.json > > @@ -592,6 +592,51 @@ > > { 'enum': 'MigrationParameter', > > 'data': ['compress-level', 'compress-threads', > > 'decompress-threads'] } > > > > +# > > +# @migrate-set-parameters > > +# > > +# Set the following migration parameters # # @compress-level: > > +compression level # # @compress-threads: compression thread count # # > > +@decompress-threads: decompression thread count # # Since: 2.3 ## { > > +'command': 'migrate-set-parameters', > > + 'data': { '*compress-level': 'int', > > + '*compress-threads': 'int', > > + '*decompress-threads': 'int'} } > > + > > +# > > +# @MigrationParameters > > +# > > +# @compress-level: compression level > > +# > > +# @compress-threads: compression thread count # # > > +@decompress-threads: decompression thread count # # Since: 2.3 ## { > > +'type': 'MigrationParameters', > > + 'data': { 'compress-level': 'int', > > + 'compress-threads': 'int', > > + 'decompress-threads': 'int'} } ## # > > +@query-migrate-parameters # # Returns information about the current > > +migration parameters # # Returns: @MigrationParameters # # Since: 2.3 > > +## { 'command': 'query-migrate-parameters', > > + 'returns': 'MigrationParameters' } > > + > > ## > > # @MouseInfo: > > # > > diff --git a/qmp-commands.hx b/qmp-commands.hx index > 3a42ad0..8fcf5a8 > > 100644 > > --- a/qmp-commands.hx > > +++ b/qmp-commands.hx > > @@ -3320,6 +3320,63 @@ EQMP > > }, > > > > SQMP > > +migrate-set-parameters > > +---------------------- > > + > > +Set migration parameters > > + > > +- "compress-level": set compression level during migration (json-int) > > +- "compress-threads": set compression thread count for migration > > +(json-int) > > +- "decompress-threads": set decompression thread count for migration > > +(json-int) > > + > > +Arguments: > > + > > +Example: > > + > > +-> { "execute": "migrate-set-parameters" , "arguments": > > + { "compress-level": 1 } } > > + > > +EQMP > > + > > + { > > + .name = "migrate-set-parameters", > > + .args_type = > > + "compress-level:i?,compress-threads:i?,decompress-threads:i?", > > + .mhandler.cmd_new = > qmp_marshal_input_migrate_set_parameters, > > + }, > > +SQMP > > +query-migrate-parameters > > +------------------------ > > + > > +Query current migration parameters > > + > > +- "parameters": migration parameters value > > + - "compress-level" : compression level value (json-int) > > + - "compress-threads" : compression thread count value (json-int) > > + - "decompress-threads" : decompression thread count value > > +(json-int) > > + > > +Arguments: > > + > > +Example: > > + > > +-> { "execute": "query-migrate-parameters" } > > +<- { > > + "return": { > > + "decompress-threads", 2, > > + "compress-threads", 8, > > + "compress-level", 1 > > + } > > + } > > + > > +EQMP > > + > > + { > > + .name = "query-migrate-parameters", > > + .args_type = "", > > + .mhandler.cmd_new = > qmp_marshal_input_query_migrate_parameters, > > + }, > > + > > +SQMP > > query-balloon > > ------------- > > > > -- > > 1.9.1 > > > > > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
* Li, Liang Z (liang.z.li@intel.com) wrote: > > > > * Liang Li (liang.z.li@intel.com) wrote: > > > Add the qmp commands to tune and query the parameters used in live > > > migration. > > > > Hi, > > Do you know if there's anyone working on libvirt code to drive this interface > > and turn on your compression code? > > > > Yes, I have confirmed that one person of Intel are working on this. Great; I look forward to trying it. Dave > > Liang > > > Dave > > > > > > > > Signed-off-by: Liang Li <liang.z.li@intel.com> > > > Signed-off-by: Yang Zhang <yang.z.zhang@intel.com> > > > --- > > > migration/migration.c | 56 > > ++++++++++++++++++++++++++++++++++++++++++++++++++ > > > qapi-schema.json | 45 > > ++++++++++++++++++++++++++++++++++++++++ > > > qmp-commands.hx | 57 > > +++++++++++++++++++++++++++++++++++++++++++++++++++ > > > 3 files changed, 158 insertions(+) > > > > > > diff --git a/migration/migration.c b/migration/migration.c index > > > 533717c..8732803 100644 > > > --- a/migration/migration.c > > > +++ b/migration/migration.c > > > @@ -188,6 +188,21 @@ MigrationCapabilityStatusList > > *qmp_query_migrate_capabilities(Error **errp) > > > return head; > > > } > > > > > > +MigrationParameters *qmp_query_migrate_parameters(Error **errp) { > > > + MigrationParameters *params; > > > + MigrationState *s = migrate_get_current(); > > > + > > > + params = g_malloc0(sizeof(*params)); > > > + params->compress_level = s- > > >parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL]; > > > + params->compress_threads = > > > + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS]; > > > + params->decompress_threads = > > > + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS]; > > > + > > > + return params; > > > +} > > > + > > > static void get_xbzrle_cache_stats(MigrationInfo *info) { > > > if (migrate_use_xbzrle()) { > > > @@ -301,6 +316,47 @@ void > > qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params, > > > } > > > } > > > > > > +void qmp_migrate_set_parameters(bool has_compress_level, > > > + int64_t compress_level, > > > + bool has_compress_threads, > > > + int64_t compress_threads, > > > + bool has_decompress_threads, > > > + int64_t decompress_threads, Error > > > +**errp) { > > > + MigrationState *s = migrate_get_current(); > > > + > > > + if (has_compress_level && (compress_level < 0 || compress_level > 9)) > > { > > > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > > "compress_level", > > > + "a value in range [0, 9]"); > > > + return; > > > + } > > > + if (has_compress_threads && > > > + (compress_threads < 1 || compress_threads > 255)) { > > > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > > > + "compress_threads", > > > + "a value in range [1, 255]"); > > > + return; > > > + } > > > + if (has_decompress_threads && > > > + (decompress_threads < 1 || decompress_threads > 255)) { > > > + error_set(errp, QERR_INVALID_PARAMETER_VALUE, > > > + "decompress_threads", > > > + "a value in range [1, 255]"); > > > + return; > > > + } > > > + > > > + if (has_compress_level) { > > > + s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL] = > > compress_level; > > > + } > > > + if (has_compress_threads) { > > > + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS] = > > compress_threads; > > > + } > > > + if (has_decompress_threads) { > > > + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS] = > > > + decompress_threads; > > > + } > > > +} > > > + > > > /* shared migration helpers */ > > > > > > static void migrate_set_state(MigrationState *s, int old_state, int > > > new_state) diff --git a/qapi-schema.json b/qapi-schema.json index > > > 121fcc7..579801b 100644 > > > --- a/qapi-schema.json > > > +++ b/qapi-schema.json > > > @@ -592,6 +592,51 @@ > > > { 'enum': 'MigrationParameter', > > > 'data': ['compress-level', 'compress-threads', > > > 'decompress-threads'] } > > > > > > +# > > > +# @migrate-set-parameters > > > +# > > > +# Set the following migration parameters # # @compress-level: > > > +compression level # # @compress-threads: compression thread count # # > > > +@decompress-threads: decompression thread count # # Since: 2.3 ## { > > > +'command': 'migrate-set-parameters', > > > + 'data': { '*compress-level': 'int', > > > + '*compress-threads': 'int', > > > + '*decompress-threads': 'int'} } > > > + > > > +# > > > +# @MigrationParameters > > > +# > > > +# @compress-level: compression level > > > +# > > > +# @compress-threads: compression thread count # # > > > +@decompress-threads: decompression thread count # # Since: 2.3 ## { > > > +'type': 'MigrationParameters', > > > + 'data': { 'compress-level': 'int', > > > + 'compress-threads': 'int', > > > + 'decompress-threads': 'int'} } ## # > > > +@query-migrate-parameters # # Returns information about the current > > > +migration parameters # # Returns: @MigrationParameters # # Since: 2.3 > > > +## { 'command': 'query-migrate-parameters', > > > + 'returns': 'MigrationParameters' } > > > + > > > ## > > > # @MouseInfo: > > > # > > > diff --git a/qmp-commands.hx b/qmp-commands.hx index > > 3a42ad0..8fcf5a8 > > > 100644 > > > --- a/qmp-commands.hx > > > +++ b/qmp-commands.hx > > > @@ -3320,6 +3320,63 @@ EQMP > > > }, > > > > > > SQMP > > > +migrate-set-parameters > > > +---------------------- > > > + > > > +Set migration parameters > > > + > > > +- "compress-level": set compression level during migration (json-int) > > > +- "compress-threads": set compression thread count for migration > > > +(json-int) > > > +- "decompress-threads": set decompression thread count for migration > > > +(json-int) > > > + > > > +Arguments: > > > + > > > +Example: > > > + > > > +-> { "execute": "migrate-set-parameters" , "arguments": > > > + { "compress-level": 1 } } > > > + > > > +EQMP > > > + > > > + { > > > + .name = "migrate-set-parameters", > > > + .args_type = > > > + "compress-level:i?,compress-threads:i?,decompress-threads:i?", > > > + .mhandler.cmd_new = > > qmp_marshal_input_migrate_set_parameters, > > > + }, > > > +SQMP > > > +query-migrate-parameters > > > +------------------------ > > > + > > > +Query current migration parameters > > > + > > > +- "parameters": migration parameters value > > > + - "compress-level" : compression level value (json-int) > > > + - "compress-threads" : compression thread count value (json-int) > > > + - "decompress-threads" : decompression thread count value > > > +(json-int) > > > + > > > +Arguments: > > > + > > > +Example: > > > + > > > +-> { "execute": "query-migrate-parameters" } > > > +<- { > > > + "return": { > > > + "decompress-threads", 2, > > > + "compress-threads", 8, > > > + "compress-level", 1 > > > + } > > > + } > > > + > > > +EQMP > > > + > > > + { > > > + .name = "query-migrate-parameters", > > > + .args_type = "", > > > + .mhandler.cmd_new = > > qmp_marshal_input_query_migrate_parameters, > > > + }, > > > + > > > +SQMP > > > query-balloon > > > ------------- > > > > > > -- > > > 1.9.1 > > > > > > > > -- > > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff --git a/migration/migration.c b/migration/migration.c index 533717c..8732803 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -188,6 +188,21 @@ MigrationCapabilityStatusList *qmp_query_migrate_capabilities(Error **errp) return head; } +MigrationParameters *qmp_query_migrate_parameters(Error **errp) +{ + MigrationParameters *params; + MigrationState *s = migrate_get_current(); + + params = g_malloc0(sizeof(*params)); + params->compress_level = s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL]; + params->compress_threads = + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS]; + params->decompress_threads = + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS]; + + return params; +} + static void get_xbzrle_cache_stats(MigrationInfo *info) { if (migrate_use_xbzrle()) { @@ -301,6 +316,47 @@ void qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params, } } +void qmp_migrate_set_parameters(bool has_compress_level, + int64_t compress_level, + bool has_compress_threads, + int64_t compress_threads, + bool has_decompress_threads, + int64_t decompress_threads, Error **errp) +{ + MigrationState *s = migrate_get_current(); + + if (has_compress_level && (compress_level < 0 || compress_level > 9)) { + error_set(errp, QERR_INVALID_PARAMETER_VALUE, "compress_level", + "a value in range [0, 9]"); + return; + } + if (has_compress_threads && + (compress_threads < 1 || compress_threads > 255)) { + error_set(errp, QERR_INVALID_PARAMETER_VALUE, + "compress_threads", + "a value in range [1, 255]"); + return; + } + if (has_decompress_threads && + (decompress_threads < 1 || decompress_threads > 255)) { + error_set(errp, QERR_INVALID_PARAMETER_VALUE, + "decompress_threads", + "a value in range [1, 255]"); + return; + } + + if (has_compress_level) { + s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL] = compress_level; + } + if (has_compress_threads) { + s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS] = compress_threads; + } + if (has_decompress_threads) { + s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS] = + decompress_threads; + } +} + /* shared migration helpers */ static void migrate_set_state(MigrationState *s, int old_state, int new_state) diff --git a/qapi-schema.json b/qapi-schema.json index 121fcc7..579801b 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -592,6 +592,51 @@ { 'enum': 'MigrationParameter', 'data': ['compress-level', 'compress-threads', 'decompress-threads'] } +# +# @migrate-set-parameters +# +# Set the following migration parameters +# +# @compress-level: compression level +# +# @compress-threads: compression thread count +# +# @decompress-threads: decompression thread count +# +# Since: 2.3 +## +{ 'command': 'migrate-set-parameters', + 'data': { '*compress-level': 'int', + '*compress-threads': 'int', + '*decompress-threads': 'int'} } + +# +# @MigrationParameters +# +# @compress-level: compression level +# +# @compress-threads: compression thread count +# +# @decompress-threads: decompression thread count +# +# Since: 2.3 +## +{ 'type': 'MigrationParameters', + 'data': { 'compress-level': 'int', + 'compress-threads': 'int', + 'decompress-threads': 'int'} } +## +# @query-migrate-parameters +# +# Returns information about the current migration parameters +# +# Returns: @MigrationParameters +# +# Since: 2.3 +## +{ 'command': 'query-migrate-parameters', + 'returns': 'MigrationParameters' } + ## # @MouseInfo: # diff --git a/qmp-commands.hx b/qmp-commands.hx index 3a42ad0..8fcf5a8 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -3320,6 +3320,63 @@ EQMP }, SQMP +migrate-set-parameters +---------------------- + +Set migration parameters + +- "compress-level": set compression level during migration (json-int) +- "compress-threads": set compression thread count for migration (json-int) +- "decompress-threads": set decompression thread count for migration (json-int) + +Arguments: + +Example: + +-> { "execute": "migrate-set-parameters" , "arguments": + { "compress-level": 1 } } + +EQMP + + { + .name = "migrate-set-parameters", + .args_type = + "compress-level:i?,compress-threads:i?,decompress-threads:i?", + .mhandler.cmd_new = qmp_marshal_input_migrate_set_parameters, + }, +SQMP +query-migrate-parameters +------------------------ + +Query current migration parameters + +- "parameters": migration parameters value + - "compress-level" : compression level value (json-int) + - "compress-threads" : compression thread count value (json-int) + - "decompress-threads" : decompression thread count value (json-int) + +Arguments: + +Example: + +-> { "execute": "query-migrate-parameters" } +<- { + "return": { + "decompress-threads", 2, + "compress-threads", 8, + "compress-level", 1 + } + } + +EQMP + + { + .name = "query-migrate-parameters", + .args_type = "", + .mhandler.cmd_new = qmp_marshal_input_query_migrate_parameters, + }, + +SQMP query-balloon -------------