From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Juan Quintela" <quintela@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Laurent Vivier" <lvivier@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH 0/2] tests/qtest: make migraton-test faster
Date: Tue, 18 Apr 2023 14:30:58 +0100 [thread overview]
Message-ID: <20230418133100.48799-1-berrange@redhat.com> (raw)
This makes migration-test faster by observing that most of the pre-copy
tests don't need to be doing a live migration. They get sufficient code
coverage with the guest CPUs paused.
On my machine this cuts the overall execution time of migration-test
by 50% from 15 minutes, down to 8 minutes, without sacrificing any
noticeable code coverage.
This is still quite slow though.
The following are the test timings sorted by speed:
/x86_64/migration/auto_converge 68.85
/x86_64/migration/precopy/unix/xbzrle 68.29
/x86_64/migration/postcopy/preempt/tls/psk 36.57
/x86_64/migration/dirty_ring 35.58
/x86_64/migration/precopy/unix/plain 35.56
/x86_64/migration/postcopy/preempt/plain 34.71
/x86_64/migration/postcopy/recovery/plain 34.56
/x86_64/migration/postcopy/tls/psk 34.45
/x86_64/migration/postcopy/preempt/recovery/tls/psk 33.99
/x86_64/migration/postcopy/preempt/recovery/plain 33.99
/x86_64/migration/postcopy/plain 33.78
/x86_64/migration/postcopy/recovery/tls/psk 33.30
/x86_64/migration/multifd/tcp/plain/none 21.12
/x86_64/migration/vcpu_dirty_limit 12.28
/x86_64/migration/multifd/tcp/tls/x509/default-host 2.95
/x86_64/migration/multifd/tcp/tls/x509/allow-anon-client 2.68
/x86_64/migration/multifd/tcp/tls/x509/override-host 2.51
/x86_64/migration/precopy/tcp/tls/x509/default-host 1.52
/x86_64/migration/precopy/unix/tls/x509/override-host 1.49
/x86_64/migration/precopy/unix/tls/psk 1.48
/x86_64/migration/precopy/tcp/tls/psk/match 1.47
/x86_64/migration/multifd/tcp/tls/psk/match 1.35
/x86_64/migration/precopy/tcp/tls/x509/allow-anon-client 1.32
/x86_64/migration/precopy/tcp/tls/x509/override-host 1.27
/x86_64/migration/precopy/tcp/tls/x509/friendly-client 1.27
/x86_64/migration/multifd/tcp/plain/zlib 1.08
/x86_64/migration/precopy/tcp/plain 1.05
/x86_64/migration/fd_proto 1.04
/x86_64/migration/multifd/tcp/tls/psk/mismatch 1.00
/x86_64/migration/multifd/tcp/plain/zstd 0.98
/x86_64/migration/precopy/tcp/tls/x509/hostile-client 0.85
/x86_64/migration/multifd/tcp/tls/x509/mismatch-host 0.79
/x86_64/migration/precopy/tcp/tls/x509/mismatch-host 0.75
/x86_64/migration/precopy/unix/tls/x509/default-host 0.74
/x86_64/migration/precopy/tcp/tls/x509/reject-anon-client 0.71
/x86_64/migration/multifd/tcp/tls/x509/reject-anon-client 0.68
/x86_64/migration/precopy/tcp/tls/psk/mismatch 0.63
/x86_64/migration/validate_uuid_src_not_set 0.59
/x86_64/migration/validate_uuid 0.54
/x86_64/migration/validate_uuid_dst_not_set 0.53
/x86_64/migration/bad_dest 0.41
/x86_64/migration/validate_uuid_error 0.31
The auto-converge and xbzrle tests are top because they both inherantly
*need* todo multiple interations in order to exercise the desired
code paths.
The post-copy tests are all up there because we always do one iteration
of pre-copy before switching to post-copy and we need to ensure that we
don't complete before getting to the post-copy bit.
I think we can optimize the post-copy bit though. Only 1 of the
post-copy tests really needs to go through a full pre-copy iteration
to get good code coverage. For the other post-copy tests we can change
to let it copy 10 MBs of data in pre-copy mode and then switch to
post-copy.
Also in
commit 1bfc8dde505f1e6a92697c52aa9b09e81b54c78f
Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
Date: Mon Mar 6 15:26:12 2023 +0000
tests/migration: Tweek auto converge limits check
we cut the bandwidth by factor of x10 to ensure reliability. I think
that was perhaps too aggressive. If we bump it back up to say 10 MB/sec
that's still better than the original 30 MB/sec, perhaps enough to give
us reliability, while cutting time of other tests by 70%
Daniel P. Berrangé (2):
tests/qtest: capture RESUME events during migration
tests/qtest: make more migration pre-copy scenarios run non-live
tests/qtest/migration-helpers.c | 12 +++++++++---
tests/qtest/migration-helpers.h | 1 +
tests/qtest/migration-test.c | 34 ++++++++++++++++++++++++++-------
3 files changed, 37 insertions(+), 10 deletions(-)
--
2.40.0
next reply other threads:[~2023-04-18 13:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-18 13:30 Daniel P. Berrangé [this message]
2023-04-18 13:30 ` [PATCH 1/2] tests/qtest: capture RESUME events during migration Daniel P. Berrangé
2023-04-20 11:32 ` Juan Quintela
2023-04-20 11:37 ` Daniel P. Berrangé
2023-04-18 13:31 ` [PATCH 2/2] tests/qtest: make more migration pre-copy scenarios run non-live Daniel P. Berrangé
2023-04-18 19:52 ` Fabiano Rosas
2023-04-19 17:14 ` Daniel P. Berrangé
2023-04-21 17:20 ` Daniel P. Berrangé
2023-04-20 12:59 ` Juan Quintela
2023-04-20 15:58 ` Daniel P. Berrangé
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=20230418133100.48799-1-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=lvivier@redhat.com \
--cc=pbonzini@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).