From: Peter Xu <peterx@redhat.com>
To: Aadeshveer Singh <aadeshveer07@gmail.com>
Cc: qemu-devel@nongnu.org, farosas@suse.de, pbonzini@redhat.com,
philmd@mailo.com, lvivier@redhat.com, ayoub@saferwall.com,
pierrick.bouvier@oss.qualcomm.com
Subject: Re: [PATCH v3 09/11] migration/tests: remove capability conflict test postcopy-ram+mapped-ram
Date: Mon, 20 Jul 2026 15:29:50 -0400 [thread overview]
Message-ID: <al53LrW7wXQL51Nf@x1.local> (raw)
In-Reply-To: <20260714141547.1268000-10-aadeshveer07@gmail.com>
On Tue, Jul 14, 2026 at 07:45:45PM +0530, Aadeshveer Singh wrote:
> Remove the test test_validate_caps_pair, which asserted postcopy-ram
> and mapped-ram capabilities cannot be active together. The new fast
> snapshot load feature is exactly this pair of capabilities active
> together, with the following patches in this series, this combination
> will now supported and be functional.
>
> Remove the capability check that rejected mapped-ram and postcopy-ram
> being set simultaneously, as this combination now corresponds to fast
> snapshot load.
>
> Add a capability check against setting multifd when configured for fast
> snapshot load as it is not supported yet. Also add capability check
> against setting postcopy-preempt as it is incompatible.
>
> A smoke test exercising this feature has been added further in this
> series.
>
> Signed-off-by: Aadeshveer Singh <aadeshveer07@gmail.com>
The subject with "migration/tests:" may imply this is a pure test change.
Let's rename it to something like "migration: Enable mapped-ram with
postcopy" to say this is a functional change. It's normally fine to have
test changes with such functional change, not vice versa (or people may
ignore this patch when backporting the feature only).
After rename, feel free to take:
Reviewed-by: Peter Xu <peterx@redhat.com>
> ---
> migration/options.c | 14 ++++++--
> tests/qtest/migration/misc-tests.c | 52 ------------------------------
> 2 files changed, 12 insertions(+), 54 deletions(-)
>
> diff --git a/migration/options.c b/migration/options.c
> index 5cbfd29099..d61a10f1c4 100644
> --- a/migration/options.c
> +++ b/migration/options.c
> @@ -727,10 +727,20 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp)
> "Mapped-ram migration is incompatible with xbzrle");
> return false;
> }
> + }
>
> - if (new_caps[MIGRATION_CAPABILITY_POSTCOPY_RAM]) {
> + if (new_caps[MIGRATION_CAPABILITY_MAPPED_RAM] &&
> + new_caps[MIGRATION_CAPABILITY_POSTCOPY_RAM]) {
> + if (new_caps[MIGRATION_CAPABILITY_MULTIFD]) {
> error_setg(errp,
> - "Mapped-ram migration is incompatible with postcopy");
> + "Multifd is not supported with fast snapshot load");
> + return false;
> + }
> +
> + if (new_caps[MIGRATION_CAPABILITY_POSTCOPY_PREEMPT]) {
> + error_setg(
> + errp,
> + "Postcopy Preempt is incompatible with fast snapshot load");
> return false;
> }
> }
> diff --git a/tests/qtest/migration/misc-tests.c b/tests/qtest/migration/misc-tests.c
> index ec6d438cdc..4e0deb7f18 100644
> --- a/tests/qtest/migration/misc-tests.c
> +++ b/tests/qtest/migration/misc-tests.c
> @@ -201,55 +201,6 @@ static void do_test_validate_uri_channel(MigrateCommon *args)
> migrate_end(from, to, false);
> }
>
> -static void validate_caps_pair(QTestState *from,
> - const char *first_capability,
> - const char *second_capability,
> - const char *expected_error)
> -{
> - QDict *rsp;
> - const char *error_desc;
> -
> - migrate_set_capability(from, first_capability, true);
> -
> - rsp = qtest_qmp_assert_failure_ref(
> - from,
> - "{ 'execute': 'migrate-set-capabilities',"
> - " 'arguments': { 'capabilities': [ { "
> - " 'capability': %s, 'state': true } ] } }",
> - second_capability);
> -
> - error_desc = qdict_get_str(rsp, "desc");
> - g_assert_cmpstr(error_desc, ==, expected_error);
> - qobject_unref(rsp);
> -
> - migrate_set_capability(from, first_capability, false);
> -}
> -
> -static void test_validate_caps_pair(char *test_path, MigrateCommon *args)
> -{
> - g_autofree char *serial_path = g_strconcat(tmpfs, "/src_serial", NULL);
> - g_autofree char *cap_pair = g_path_get_basename(test_path);
> - QTestState *from, *to;
> -
> - args->start.hide_stderr = true;
> - args->start.only_source = true;
> -
> - if (migrate_start(&from, &to, &args->start)) {
> - return;
> - }
> -
> - if (g_str_equal(cap_pair, "mapped_ram_postcopy")) {
> - const char *error =
> - "Mapped-ram migration is incompatible with postcopy";
> -
> - validate_caps_pair(from, "mapped-ram", "postcopy-ram", error);
> - validate_caps_pair(from, "postcopy-ram", "mapped-ram", error);
> - }
> -
> - qtest_quit(from);
> - unlink(serial_path);
> -}
> -
> static void test_validate_uri_channels_both_set(char *name, MigrateCommon *args)
> {
> args->uri = "tcp:127.0.0.1:0",
> @@ -309,7 +260,4 @@ void migration_test_add_misc(MigrationTestEnv *env)
> test_validate_uri_channels_both_set);
> migration_test_add("/migration/validate_uri/channels/none_set",
> test_validate_uri_channels_none_set);
> - migration_test_add_suffix("/migration/validate_caps/",
> - "mapped_ram_postcopy",
> - test_validate_caps_pair);
> }
> --
> 2.55.0
>
--
Peter Xu
next prev parent reply other threads:[~2026-07-20 19:31 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 14:15 [PATCH v3 00/11] migration: fast snapshot load Aadeshveer Singh
2026-07-14 14:15 ` [PATCH v3 01/11] migration: Propagate error in postcopy setup functions Aadeshveer Singh
2026-07-20 15:43 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 02/11] migration: Extract blocktime marking helper Aadeshveer Singh
2026-07-20 15:43 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 03/11] migration: Rename postcopy_listen_thread_bh Aadeshveer Singh
2026-07-20 16:01 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 04/11] migration: Use file_bmap for RAMBlock during incoming file load Aadeshveer Singh
2026-07-20 16:02 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 05/11] migration: Make qemu_get_buffer_at() thread-safe Aadeshveer Singh
2026-07-20 16:03 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 06/11] migration: add RAMBlock field and helper for fast snapshot load Aadeshveer Singh
2026-07-20 16:23 ` Peter Xu
2026-07-20 18:39 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 07/11] migration: add support for fault thread to load pages from disk Aadeshveer Singh
2026-07-20 19:04 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 08/11] migration: add eager load thread and setup for fast snapshot load Aadeshveer Singh
2026-07-20 19:21 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 09/11] migration/tests: remove capability conflict test postcopy-ram+mapped-ram Aadeshveer Singh
2026-07-20 19:29 ` Peter Xu [this message]
2026-07-14 14:15 ` [PATCH v3 10/11] migration/tests: Add test for fast snapshot load Aadeshveer Singh
2026-07-20 19:30 ` Peter Xu
2026-07-14 14:15 ` [PATCH v3 11/11] docs/migration: Add documentation for fast snapshot load feature Aadeshveer Singh
2026-07-20 19:42 ` Peter Xu
2026-07-20 19:24 ` [PATCH v3 00/11] migration: fast snapshot load Peter Xu
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=al53LrW7wXQL51Nf@x1.local \
--to=peterx@redhat.com \
--cc=aadeshveer07@gmail.com \
--cc=ayoub@saferwall.com \
--cc=farosas@suse.de \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@mailo.com \
--cc=pierrick.bouvier@oss.qualcomm.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.