On Mon, Dec 15, 2025 at 06:59:46PM -0300, Fabiano Rosas wrote:
> 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
I'll keep reviewing the rest test changes.. while I've queued patches
1-13,25,26 for the upcoming pull for qemu 11.0. Please shoot if there's
any concerns.
Thanks,
--
Peter Xu