Hi, the scope of this series is the same as the previous versions, but
to be explicit, these are various parts of which it's comprised:
1) Remove duplication of migration parameters documentation in
migration.json.
2) Merge migration capabilities and parameters in MigrationState (as
visible internally in migration code).
3) Deprecate migration capabilities QMP commands. Functionality
previously provided by "capabilities" commands are now provided by
"parameters" commands.
4) Introduce new 'config' argument to migration commands taking the
entire set of options to use for a migration. Obsoletes the usage
of migrate-set-parameters, except for "runtime" options, which are
as of yet uncovered by this proposal.
5) Adapt all migration-test(s) to use the new config API exclusively.
Notable changes in this v3:
- Added the setter for the new StrOrNull qdev property
- Move the visitor code into a new QAPI_MERGE macro
- Converted all tests to use config
- Unfortunate side-quest: rework the TLS test hooks to support
setting options before migrate_start.
CI run: https://gitlab.com/farosas/qemu/-/pipelines/2216127826
v2:
https://lore.kernel.org/r/20250630195913.28033-1-farosas@suse.de
v1:
https://lore.kernel.org/r/20250603013810.4772-1-farosas@suse.de
RFC:
https://lore.kernel.org/r/20250411191443.22565-1-farosas@suse.de
Fabiano Rosas (51):
migration: Fix leak of block_bitmap_mapping
migration: Fix leak of cpr_exec_command
migration: Add a qdev property for StrOrNull
tests/qtest/migration: Add a NULL parameters test for TLS
migration: Normalize tls arguments
migration: Remove MigrateSetParameters
qapi/migration: Don't document MigrationParameter
migration: Run a post update routine after setting parameters
migration: Add a flag to track block-bitmap-mapping input
migration: Remove checks for s->parameters has_* fields
migration: Do away with usage of QERR_INVALID_PARAMETER_VALUE
migration: Extract code to mark all parameters as present
migration: Use QAPI_CLONE_MEMBERS in query_migrate_parameters
migration: Use QAPI_CLONE_MEMBERS in migrate_params_test_apply
migration: Use QAPI_CLONE_MEMBERS in migrate_params_apply
qapi: Add QAPI_MERGE
migration: Use QAPI_MERGE in migrate_params_test_apply
migration: Cleanup hmp_info_migrate_parameters
migration: Add capabilities into MigrationParameters
migration: Remove s->capabilities
qapi/migration: Deprecate capabilities commands
migration: Store the initial values used for s->parameters
migration: Allow migrate commands to provide the migration config
migration: Allow incoming cmdline to take config
tests/qtest/migration: Pass MigrateCommon into test functions
tests/qtest/migration: Pass MigrateStart into cancel tests
tests/qtest/migration: Fix misuse of listen_uri
tests/qtest/migration: Stop invoking migrate_incoming from hooks
tests/qtest/migration: Add config QDict
tests/qtest/migration: Add temporary code to toggle usage of config
tests/qtest/migration: Add a function for default capabilities
tests/qtest/migration: Adapt convergence routines to config
tests/qtest/migration: Adapt the incoming cmdline for config passing
tests/qtest/migration: Use migrate_incoming_qmp where possible
tests/qtest/migration: Add a config parameter to migrate_qmp functions
tests/qtest/migration: Move tls hook data out of specific hooks
tests/qtest/migration: Add new hook with data
tests/qtest/migration: TLS x509: Refactor to use full hook
tests/qtest/migration: TLS x509: Add init/cleanup routines
tests/qtest/migration: TLS PSK: Refactor to use full hook
tests/qtest/migration: TLS PSK: Add init/cleanup routines
tests/qtest/migration: Remove multifd compression hook
tests/qtest/migration: Convert postcopy tests to use config
tests/qtest/migration: Convert TLS PSK tests to use config
tests/qtest/migration: Convert TLS x509 tests to use config
tests/qtest/migration: Convert compression tests to use config
tests/qtest/migration: Convert file tests to use config
tests/qtest/migration: Convert misc-tests to use config
tests/qtest/migration: Convert precopy tests to use config
tests/qtest/migration: Remove migrate_set_capabilities and code around
it
tests/qtest/migration: Further simplify TLS tests
docs/about/deprecated.rst | 10 +
include/qapi/type-helpers.h | 29 +
migration/migration-hmp-cmds.c | 503 ++++++---
migration/migration.c | 52 +-
migration/migration.h | 14 +-
migration/options.c | 1183 ++++++++++-----------
migration/options.h | 30 +-
migration/page_cache.c | 6 +-
migration/ram.c | 5 +-
migration/savevm.c | 8 +-
migration/tls.c | 2 +-
qapi/migration.json | 569 ++++------
qapi/pragma.json | 1 +
system/vl.c | 111 +-
tests/qtest/migration/compression-tests.c | 179 ++--
tests/qtest/migration/cpr-tests.c | 137 +--
tests/qtest/migration/file-tests.c | 209 ++--
tests/qtest/migration/framework.c | 158 +--
tests/qtest/migration/framework.h | 29 +-
tests/qtest/migration/migration-qmp.c | 64 +-
tests/qtest/migration/migration-qmp.h | 21 +-
tests/qtest/migration/migration-util.c | 72 +-
tests/qtest/migration/migration-util.h | 9 +-
tests/qtest/migration/misc-tests.c | 132 +--
tests/qtest/migration/postcopy-tests.c | 80 +-
tests/qtest/migration/precopy-tests.c | 535 +++++-----
tests/qtest/migration/tls-tests.c | 897 +++++++---------
tests/qtest/virtio-net-failover.c | 24 +-
28 files changed, 2512 insertions(+), 2557 deletions(-)
--
2.51.0