From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: qemu-devel@nongnu.org, Avihai Horon <avihaih@nvidia.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Leonardo Bras Soares Passos <lsoaresp@redhat.com>,
Juan Quintela <quintela@redhat.com>,
Laurent Vivier <lvivier@redhat.com>,
Thomas Huth <thuth@redhat.com>
Subject: Re: [PATCH RFC 3/3] qtest/migration: Use switchover-hold to speedup
Date: Fri, 2 Jun 2023 12:03:05 +0100 [thread overview]
Message-ID: <ZHnMaQ4NFCUQ5gmN@redhat.com> (raw)
In-Reply-To: <20230602011626.226640-4-peterx@redhat.com>
On Thu, Jun 01, 2023 at 09:16:26PM -0400, Peter Xu wrote:
> Use the switchover-hold flag rather than tuning bw+downtime to guide test
> convergence.
>
> This can achieve similar goal of previous patch "tests/qtest: massively
> speed up migration-test" but without magic offset to write or monitoring.
>
> The initial solution can reduce migration-test time from 8min to 1min40s,
> this patch can further reduce it from 1m40s to 1m1s per my local test.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
> tests/qtest/migration-test.c | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
> index b0c355bbd9..62bdd67fd9 100644
> --- a/tests/qtest/migration-test.c
> +++ b/tests/qtest/migration-test.c
> @@ -433,16 +433,15 @@ static void migrate_set_parameter_bool(QTestState *who, const char *parameter,
>
> static void migrate_ensure_non_converge(QTestState *who)
> {
> - /* Can't converge with 1ms downtime + 3 mbs bandwidth limit */
> - migrate_set_parameter_int(who, "max-bandwidth", 3 * 1000 * 1000);
> - migrate_set_parameter_int(who, "downtime-limit", 1);
> + /* Hold off switchover for precopy only */
> + migrate_set_parameter_bool(who, "switchover-hold", true);
> }
>
> static void migrate_ensure_converge(QTestState *who)
> {
> - /* Should converge with 30s downtime + 1 gbs bandwidth limit */
> - migrate_set_parameter_int(who, "max-bandwidth", 1 * 1000 * 1000 * 1000);
> - migrate_set_parameter_int(who, "downtime-limit", 30 * 1000);
> + /* No limitation on bandwidth so converge faster */
> + migrate_set_parameter_int(who, "max-bandwidth", 0);
You're already setting max-bandwith==0 in migrate_postcopy_prepare.
If you also set it in test_precopy_common, so we don't need to
set it here, and we'll avoid the initial phase running with
bandwidth=32mbs.
> + migrate_set_parameter_bool(who, "switchover-hold", false);
> }
>
> static void migrate_pause(QTestState *who)
> @@ -492,6 +491,13 @@ static void migrate_postcopy_start(QTestState *from, QTestState *to)
> }
>
> qtest_qmp_eventwait(to, "RESUME");
> +
> + /*
> + * Now allow precopy switchover (which will allow completion). This
> + * needs to be done after migrate-start-postcopy to make sure we switch
> + * to postcopy first.
> + */
> + migrate_ensure_converge(from);
> }
>
> typedef struct {
> @@ -1164,6 +1170,8 @@ static int migrate_postcopy_prepare(QTestState **from_ptr,
> }
>
> migrate_ensure_non_converge(from);
> + /* Still use unlimited precopy speed to finish 1st iteration fast */
> + migrate_set_parameter_int(from, "max-bandwidth", 0);
>
> /* Wait for the first serial output from the source */
> wait_for_serial("src_serial");
> --
> 2.40.1
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2023-06-02 11:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-02 1:16 [PATCH RFC 0/3] migration: switchover-hold flag Peter Xu
2023-06-02 1:16 ` [PATCH RFC 1/3] migration: switchover-hold parameter Peter Xu
2023-06-02 11:14 ` Daniel P. Berrangé
2023-06-02 13:20 ` Peter Xu
2023-06-02 1:16 ` [PATCH RFC 2/3] Revert "tests/qtest: massively speed up migration-test" Peter Xu
2023-06-02 1:16 ` [PATCH RFC 3/3] qtest/migration: Use switchover-hold to speedup Peter Xu
2023-06-02 11:03 ` Daniel P. Berrangé [this message]
2023-06-02 13:23 ` 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=ZHnMaQ4NFCUQ5gmN@redhat.com \
--to=berrange@redhat.com \
--cc=avihaih@nvidia.com \
--cc=lsoaresp@redhat.com \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=thuth@redhat.com \
/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.