From: Fabiano Rosas <farosas@suse.de>
To: qemu-devel@nongnu.org
Cc: Peter Xu <peterx@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
"Dr . David Alan Gilbert" <dave@treblig.org>
Subject: [PATCH v2 00/18] migration: MigrationParameters changes
Date: Wed, 9 Sep 2026 18:44:50 -0300 [thread overview]
Message-ID: <20260909214509.237309-1-farosas@suse.de> (raw)
since v1:
- Made the commit message clearer on the checkpatch change.
- Renamed the variables in the merge function to indicate which
structure is the one receiving the update.
- Rewrote the string parsing on the HMP test because it was allowing
false positives and tripping on readline escape sequences.
- Dropped the has_* fields validation patch because it was simply
doing nothing (thank you Peter for spotting it).
- Due to the above I decided to leave MigrateParameter (singular)
untouched. The enum max is just too convenient to lose.
- Used an array instead of a switch for the capabilities compat
function.
- Fixed the copy of MigrationCapability documentation over to
MigrationParameters in migration.json which was not verbatim.
- Added missing return statement in migrate_params_check.
- Added CONFIG_HMP checks after rebase on master
CI run: https://gitlab.com/farosas/qemu/-/pipelines/2834127646
---
v1:
https://lore.kernel.org/r/20260902221547.1812481-1-farosas@suse.de
Hi, this contains the pending work from my previous two series to
reduce duplication in the migration parameters handling and unify
migration parameters and capabilities.
Supersedes these series:
- [PATCH v3 00/51] migration: Unify capabilities and parameters
https://lore.kernel.org/r/20251215220041.12657-1-farosas@suse.de
- [PATCH v2 0/9] qapi: Use visitors for migration parameters handling
https://lore.kernel.org/r/20260202224101.20568-1-farosas@suse.de
I held on to the "pass full config to migration commands" changes for
now, let's put this^ scaffolding in first.
Changes from previous versions:
1) hacky qapi dealloc visitor replaced with a simple merge using
QDict.
Suggested as one of the alternatives by Markus in:
https://lore.kernel.org/r/871pio3d3h.fsf@pond.sub.org
This^ made me realise we've been doing manual checking in a lot of
places where a QAPI->QDict serialization would do the work
automatically, so:
2) New qtest to validate migration HMP commands.
Good to have in general, but also this series touches that code
heavily.
3) Rewrite of hmp_migrate_set_parameters, hmp_info_migrate_parameters
and hmp_migrate_set_parameter_completion.
I want to remove all manual handling of migration parameters. These
commands were the last heavy users of the "if params->has_foo,
handle params->foo" pattern. We lose some user-friendliness here,
but hopefully it's ok.
4) Remove MigrationParameter (singular).
With this, migration.json now has only one place to define and
document migration parameters, the MigrationParameters (plural).
5) New routine to validate has_* fields.
Due to the above change, we lose MIGRATION_PARAMETER__MAX. Add a
routine that ensures s->parameters has all has_ fields set to
true. This is required for all the QAPI cloning and merging, etc.
CI run: https://gitlab.com/farosas/qemu/-/pipelines/2814719051
Fabiano Rosas (18):
checkpatch: Fix checking of newlines in error messages
migration/options.c: Don't export migrate_tls_opts_free
migration: Rename variables in qmp_migrate_set_parameters
migration: Use QAPI_CLONE_MEMBERS in migrate_params_apply
migration: Merge parameter structs instead of assigning one by one
migration: Open code migrate_params_apply
migration: Stop freeing s->parameters members individually
migration: Use migrate_params_free during finalize
tests/qtest/migration: Add a test for HMP
tests/qtest/migration: Add a test for HMP completion
migration: HMP: Fix bandwidth parameters
migration: Change HMP 'info migrate_parameters' output
migration: Use keyval input visitor in HMP set command
migration: Use output visitor in info command
migration: Rewrite migrate_set_parameter_completion using QDict
migration: Add capabilities into MigrationParameters
migration: Remove s->capabilities
qapi/migration: Deprecate capabilities commands
docs/about/deprecated.rst | 13 +
migration/migration-hmp-cmds.c | 457 ++++++------------
migration/migration.c | 17 +-
migration/migration.h | 2 +-
migration/options.c | 732 +++++++++++------------------
migration/options.h | 27 +-
migration/savevm.c | 8 +-
qapi/migration.json | 140 +++++-
scripts/checkpatch.pl | 11 +-
tests/qemu-iotests/300 | 20 +-
tests/qtest/migration/misc-tests.c | 534 +++++++++++++++++++++
11 files changed, 1155 insertions(+), 806 deletions(-)
--
2.53.0
next reply other threads:[~2026-09-09 21:47 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-09 21:44 Fabiano Rosas [this message]
2026-09-09 21:44 ` [PATCH v2 01/18] checkpatch: Fix checking of newlines in error messages Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 02/18] migration/options.c: Don't export migrate_tls_opts_free Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 03/18] migration: Rename variables in qmp_migrate_set_parameters Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 04/18] migration: Use QAPI_CLONE_MEMBERS in migrate_params_apply Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 05/18] migration: Merge parameter structs instead of assigning one by one Fabiano Rosas
2026-09-10 12:28 ` Peter Xu
2026-09-09 21:44 ` [PATCH v2 06/18] migration: Open code migrate_params_apply Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 07/18] migration: Stop freeing s->parameters members individually Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 08/18] migration: Use migrate_params_free during finalize Fabiano Rosas
2026-09-09 21:44 ` [PATCH v2 09/18] tests/qtest/migration: Add a test for HMP Fabiano Rosas
2026-09-10 14:02 ` Peter Xu
2026-09-13 20:30 ` Dr. David Alan Gilbert
2026-09-14 14:50 ` Fabiano Rosas
2026-09-14 15:34 ` Dr. David Alan Gilbert
2026-09-09 21:45 ` [PATCH v2 10/18] tests/qtest/migration: Add a test for HMP completion Fabiano Rosas
2026-09-10 17:36 ` Peter Xu
2026-09-13 20:58 ` Dr. David Alan Gilbert
2026-09-14 14:47 ` Fabiano Rosas
2026-09-14 14:50 ` Dr. David Alan Gilbert
2026-09-09 21:45 ` [PATCH v2 11/18] migration: HMP: Fix bandwidth parameters Fabiano Rosas
2026-09-10 6:05 ` Markus Armbruster
2026-09-10 12:37 ` Fabiano Rosas
2026-09-11 6:19 ` Markus Armbruster
2026-09-10 13:20 ` Dr. David Alan Gilbert
2026-09-10 13:26 ` Dr. David Alan Gilbert
2026-09-10 17:38 ` Peter Xu
2026-09-09 21:45 ` [PATCH v2 12/18] migration: Change HMP 'info migrate_parameters' output Fabiano Rosas
2026-09-10 7:32 ` Markus Armbruster
2026-09-10 13:02 ` Fabiano Rosas
2026-09-11 6:46 ` Markus Armbruster
2026-09-09 21:45 ` [PATCH v2 13/18] migration: Use keyval input visitor in HMP set command Fabiano Rosas
2026-09-10 11:07 ` Markus Armbruster
2026-09-10 14:15 ` Fabiano Rosas
2026-09-10 22:10 ` Fabiano Rosas
2026-09-11 8:22 ` Markus Armbruster
2026-09-11 12:54 ` Fabiano Rosas
2026-09-11 8:12 ` Markus Armbruster
2026-09-09 21:45 ` [PATCH v2 14/18] migration: Use output visitor in info command Fabiano Rosas
2026-09-09 21:45 ` [PATCH v2 15/18] migration: Rewrite migrate_set_parameter_completion using QDict Fabiano Rosas
2026-09-10 11:17 ` Markus Armbruster
2026-09-10 13:09 ` Fabiano Rosas
2026-09-11 7:15 ` Markus Armbruster
2026-09-09 21:45 ` [PATCH v2 16/18] migration: Add capabilities into MigrationParameters Fabiano Rosas
2026-09-10 11:22 ` Markus Armbruster
2026-09-09 21:45 ` [PATCH v2 17/18] migration: Remove s->capabilities Fabiano Rosas
2026-09-09 21:45 ` [PATCH v2 18/18] qapi/migration: Deprecate capabilities commands Fabiano Rosas
2026-09-10 17:35 ` [PATCH v2 00/18] migration: MigrationParameters changes Peter Xu
2026-09-10 19:27 ` Fabiano Rosas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260909214509.237309-1-farosas@suse.de \
--to=farosas@suse.de \
--cc=armbru@redhat.com \
--cc=dave@treblig.org \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.