This series has been successfully tested. Boot up two VMs, one in source and the other in destination with -incoming defer. Using the migrate_set_parameter, enable the postcopy-ram, after that check with info migrate_parameters this is correct.
(qemu) migrate_set_parameter postcopy-ram on (qemu) info migrate_parameters ... events: off postcopy-ram: on x-colo: off ... Do migration plus the postcopy and check with info migrate there's a real postcopy process while migrating (qemu) migrate -d tcp:${DST_IP}:8888 (qemu) info migrate Status: postcopy-active Time (ms): total=3410, setup=34, down=53 RAM info: Throughput (Mbps): 1000.82 Sizes (KiB): pagesize=4, total=16798280, transferred=357703, remain=6293884, precopy=128792, multifd=0, postcopy=228566 Pages: normal=88199, zero=440747, rate_per_sec=34875 Others: dirty_syncs=2, postcopy_req=644 (qemu) info migrate -a Status: postcopy-active Sockets: [ tcp::::8888 ] Globals: store-global-state: on only-migratable: off send-configuration: on send-section-footer: on send-switchover-start: on clear-bitmap-shift: 18 Finally migration ends seamlessly. (qemu) info migrate Status: completed Tested-by: Mario Casquero <mcasq...@redhat.com> On Tue, Jun 3, 2025 at 3:39 AM Fabiano Rosas <faro...@suse.de> wrote: > > Hi, > > Thanks for the reviews in the last round. Your feedback has allowed me > to reduce the complexity of the series and the code considerably. > > Changes in this v2: > > - Followed the suggestion to unify the TLS strings as StrOrNull. This > allows the complete removal of the MigrateSetParameters > type. Therefore, no need for playing tricks with base types. > > - I figured out that block_bitmap_mapping was set as optional in > qmp_query_migrate_parameters in error. Fixing that allows to > simplify that function somewhat. > > - The suggestion of not checking the has_* fields when setting the > parameters also led to great simplification. Now there's no need to > open-code the setting of every single parameter. > > - Deprecated the capabilities commands. > > - Removed some redundant documentation from migration.json. Now > there's only 1 (one) place where migration parameters need to be > documented. > > The series: > - passes CI: https://gitlab.com/farosas/qemu/-/pipelines/1849885920 > - passes the migration tests in the ASAN build. > - passes the migration compat tests against each of the 3 last QEMU versions. > - passes the iotest 300 (related to block_bitmap_mapping). > > v1: > https://lore.kernel.org/r/20250411191443.22565-1-faro...@suse.de > > Fabiano Rosas (21): > 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: Set block_bitmap_mapping unconditionally in > query-migrate-parameters > 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 > migration: Use visitors in migrate_params_test_apply > migration: Cleanup hmp_info_migrate_parameters > migration: Add capabilities into MigrationParameters > qapi/migration: Mark that query/set-migrate-parameters support > capabilities > migration: Remove s->capabilities > qapi/migration: Deprecate capabilities commands > migration: Allow migrate commands to provide the migration config > libqtest: Add a function to check whether a QMP command supports a > feature > tests/qtest/migration: Add a test for config passing > > docs/about/deprecated.rst | 12 + > migration/migration-hmp-cmds.c | 484 ++++++++---- > migration/migration.c | 50 +- > migration/migration.h | 9 +- > migration/options.c | 1090 +++++++++++++--------------- > migration/options.h | 29 +- > migration/page_cache.c | 6 +- > migration/ram.c | 5 +- > migration/savevm.c | 8 +- > migration/tls.c | 2 +- > qapi/migration.json | 573 ++++++--------- > qapi/pragma.json | 3 +- > system/vl.c | 3 +- > tests/qtest/libqtest.c | 42 ++ > tests/qtest/libqtest.h | 12 + > tests/qtest/migration/framework.h | 2 + > tests/qtest/migration/misc-tests.c | 39 + > 17 files changed, 1243 insertions(+), 1126 deletions(-) > > -- > 2.35.3 > >