All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Cc: Cleber Rosa <crosa@redhat.com>
Subject: [PULL 07/23] tests/migration: Allow longer timeouts
Date: Tue, 13 Oct 2020 12:55:11 +0200	[thread overview]
Message-ID: <20201013105527.20088-8-thuth@redhat.com> (raw)
In-Reply-To: <20201013105527.20088-1-thuth@redhat.com>

From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

In travis, with gcov and gprof we're seeing timeouts; hopefully fix
this by increasing the test timeouts a bit, but for xbzrle ensure it
really does get a couple of cycles through to test the cache.

I think the problem in travis is we have about 2 host CPU threads,
in the test we have at least 3:
   a) The vCPU thread (100% flat out)
   b) The source migration thread
   c) The destination migration thread

if (b) & (c) are slow for any reason - gcov+gperf or a slow host -
then they're sharing one host CPU thread so limit the migration
bandwidth.

Tested on my laptop with:
   taskset -c 0,1 ./tests/qtest/migration-test -p /x86_64/migration

Reported-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20201008160330.130431-1-dgilbert@redhat.com>
[thuth: Move the #define to the right location]
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/migration-test.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 00a233cd8c..f410ec5996 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -34,6 +34,9 @@ unsigned start_address;
 unsigned end_address;
 static bool uffd_feature_thread_id;
 
+/* A downtime where the test really should converge */
+#define CONVERGE_DOWNTIME 1000
+
 #if defined(__linux__)
 #include <sys/syscall.h>
 #include <sys/vfs.h>
@@ -864,8 +867,7 @@ static void test_precopy_unix(void)
 
     wait_for_migration_pass(from);
 
-    /* 300 ms should converge */
-    migrate_set_parameter_int(from, "downtime-limit", 300);
+    migrate_set_parameter_int(from, "downtime-limit", CONVERGE_DOWNTIME);
 
     if (!got_stop) {
         qtest_qmp_eventwait(from, "STOP");
@@ -946,10 +948,12 @@ static void test_xbzrle(const char *uri)
 
     migrate_qmp(from, uri, "{}");
 
+    wait_for_migration_pass(from);
+    /* Make sure we have 2 passes, so the xbzrle cache gets a workout */
     wait_for_migration_pass(from);
 
-    /* 300ms should converge */
-    migrate_set_parameter_int(from, "downtime-limit", 300);
+    /* 1000ms should converge */
+    migrate_set_parameter_int(from, "downtime-limit", 1000);
 
     if (!got_stop) {
         qtest_qmp_eventwait(from, "STOP");
@@ -999,8 +1003,7 @@ static void test_precopy_tcp(void)
 
     wait_for_migration_pass(from);
 
-    /* 300ms should converge */
-    migrate_set_parameter_int(from, "downtime-limit", 300);
+    migrate_set_parameter_int(from, "downtime-limit", CONVERGE_DOWNTIME);
 
     if (!got_stop) {
         qtest_qmp_eventwait(from, "STOP");
@@ -1068,8 +1071,7 @@ static void test_migrate_fd_proto(void)
 
     wait_for_migration_pass(from);
 
-    /* 300ms should converge */
-    migrate_set_parameter_int(from, "downtime-limit", 300);
+    migrate_set_parameter_int(from, "downtime-limit", CONVERGE_DOWNTIME);
 
     if (!got_stop) {
         qtest_qmp_eventwait(from, "STOP");
@@ -1304,8 +1306,7 @@ static void test_multifd_tcp(const char *method)
 
     wait_for_migration_pass(from);
 
-    /* 300ms it should converge */
-    migrate_set_parameter_int(from, "downtime-limit", 300);
+    migrate_set_parameter_int(from, "downtime-limit", CONVERGE_DOWNTIME);
 
     if (!got_stop) {
         qtest_qmp_eventwait(from, "STOP");
-- 
2.18.2



  parent reply	other threads:[~2020-10-13 11:01 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-13 10:55 [PULL 00/23] qtests, gitlab-CI and misc patches Thomas Huth
2020-10-13 10:55 ` [PULL 01/23] tests/qtest: Replace magic value by NANOSECONDS_PER_SECOND definition Thomas Huth
2020-10-13 10:55 ` [PULL 02/23] gitlab-ci.yml: Only run one test-case per fuzzer Thomas Huth
2020-10-13 10:55 ` [PULL 03/23] Acceptance tests: bump pycdlib version for easier installation Thomas Huth
2020-10-13 10:55 ` [PULL 04/23] Acceptance tests: do not show canceled test logs on GitLab CI Thomas Huth
2020-10-13 10:55 ` [PULL 05/23] Acceptance tests: show test report " Thomas Huth
2020-10-13 10:55 ` [PULL 06/23] qtest: add fuzz test case Thomas Huth
2020-10-13 10:55 ` Thomas Huth [this message]
2020-10-13 10:55 ` [PULL 08/23] softmmu/vl: Be less verbose about missing KVM when running the qtests Thomas Huth
2020-10-13 10:55 ` [PULL 09/23] Add a comment in bios-tables-test.c to clarify the reason behind approach Thomas Huth
2020-10-13 10:55 ` [PULL 10/23] MAINTAINERS: Ignore bios-tables-test in the qtest section Thomas Huth
2020-10-13 10:55 ` [PULL 11/23] Remove superfluous .gitignore files Thomas Huth
2020-10-13 10:55 ` [PULL 12/23] docs/system/deprecated: Mark the 'moxie' CPU as deprecated Thomas Huth
2020-10-13 10:55 ` [PULL 13/23] configure: fixes indent of $meson setup Thomas Huth
2020-10-13 10:55 ` [PULL 14/23] gitlab: add a CI job for running checkpatch.pl Thomas Huth
2020-10-13 10:55 ` [PULL 15/23] gitlab: add a CI job to validate the DCO sign off Thomas Huth
2020-10-13 10:55 ` [PULL 16/23] gitlab: assign python helper files to GitLab maintainers section Thomas Huth
2020-10-13 10:55 ` [PULL 17/23] scripts/ci/gitlab-pipeline-status: make branch name configurable Thomas Huth
2020-10-13 10:55 ` [PULL 18/23] scripts/ci/gitlab-pipeline-status: improve message regarding timeout Thomas Huth
2020-10-13 10:55 ` [PULL 19/23] scripts/ci/gitlab-pipeline-status: give early feedback on running pipelines Thomas Huth
2020-10-13 10:55 ` [PULL 20/23] scripts/ci/gitlab-pipeline-status: refactor parser creation Thomas Huth
2020-10-13 10:55 ` [PULL 21/23] scripts/ci/gitlab-pipeline-status: handle keyboard interrupts Thomas Huth
2020-10-13 10:55 ` [PULL 22/23] scripts/ci/gitlab-pipeline-status: use more descriptive exceptions Thomas Huth
2020-10-13 10:55 ` [PULL 23/23] scripts/ci/gitlab-pipeline-status: wait for pipeline creation Thomas Huth
2020-10-13 13:05 ` [PULL 00/23] qtests, gitlab-CI and misc patches Peter Maydell

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=20201013105527.20088-8-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=crosa@redhat.com \
    --cc=peter.maydell@linaro.org \
    --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.