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
>
>


Reply via email to