From: Nicholas Piggin <npiggin@gmail.com>
To: Thomas Huth <thuth@redhat.com>
Cc: Nicholas Piggin <npiggin@gmail.com>,
kvm@vger.kernel.org, Laurent Vivier <lvivier@redhat.com>,
"Shaoqin Huang" <shahuang@redhat.com>,
Andrew Jones <andrew.jones@linux.dev>,
Nico Boehr <nrb@linux.ibm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Eric Auger <eric.auger@redhat.com>,
Janosch Frank <frankja@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
Marc Hartmayer <mhartmay@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
kvmarm@lists.linux.dev
Subject: [kvm-unit-tests PATCH v2 9/9] migration: add a migration selftest
Date: Fri, 2 Feb 2024 16:57:40 +1000 [thread overview]
Message-ID: <20240202065740.68643-10-npiggin@gmail.com> (raw)
In-Reply-To: <20240202065740.68643-1-npiggin@gmail.com>
Add a selftest for migration support in guest library and test harness
code. It performs migrations a tight loop to irritate races and bugs in
the test harness code.
Acked-by: Claudio Imbrenda <imbrenda@linux.ibm.com> (s390x)
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This has flushed out several bugs in developing the multi migration test
harness code already.
---
arm/Makefile.common | 1 +
arm/unittests.cfg | 6 ++++++
common/selftest-migration.c | 34 ++++++++++++++++++++++++++++++++++
powerpc/Makefile.common | 1 +
powerpc/unittests.cfg | 4 ++++
s390x/Makefile | 1 +
s390x/unittests.cfg | 4 ++++
7 files changed, 51 insertions(+)
create mode 100644 common/selftest-migration.c
diff --git a/arm/Makefile.common b/arm/Makefile.common
index c2ee568c..371a2c6a 100644
--- a/arm/Makefile.common
+++ b/arm/Makefile.common
@@ -5,6 +5,7 @@
#
tests-common = $(TEST_DIR)/selftest.$(exe)
+tests-common += $(TEST_DIR)/selftest-migration.$(exe)
tests-common += $(TEST_DIR)/spinlock-test.$(exe)
tests-common += $(TEST_DIR)/pci-test.$(exe)
tests-common += $(TEST_DIR)/pmu.$(exe)
diff --git a/arm/unittests.cfg b/arm/unittests.cfg
index fe601cbb..1ffd9a82 100644
--- a/arm/unittests.cfg
+++ b/arm/unittests.cfg
@@ -55,6 +55,12 @@ smp = $MAX_SMP
extra_params = -append 'smp'
groups = selftest
+# Test migration
+[selftest-migration]
+file = selftest-migration.flat
+groups = selftest migration
+
+arch = arm64
# Test PCI emulation
[pci-test]
file = pci-test.flat
diff --git a/common/selftest-migration.c b/common/selftest-migration.c
new file mode 100644
index 00000000..f70c505f
--- /dev/null
+++ b/common/selftest-migration.c
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Machine independent migration tests
+ *
+ * This is just a very simple test that is intended to stress the migration
+ * support in the test harness. This could be expanded to test more guest
+ * library code, but architecture-specific tests should be used to test
+ * migration of tricky machine state.
+ */
+#include <libcflat.h>
+#include <migrate.h>
+
+#if defined(__arm__) || defined(__aarch64__)
+/* arm can only call getchar 15 times */
+#define NR_MIGRATIONS 15
+#else
+#define NR_MIGRATIONS 100
+#endif
+
+int main(int argc, char **argv)
+{
+ int i = 0;
+
+ report_prefix_push("migration");
+
+ for (i = 0; i < NR_MIGRATIONS; i++)
+ migrate_quiet();
+
+ report(true, "simple harness stress test");
+
+ report_prefix_pop();
+
+ return report_summary();
+}
diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
index eb88398d..da4a7bbb 100644
--- a/powerpc/Makefile.common
+++ b/powerpc/Makefile.common
@@ -6,6 +6,7 @@
tests-common = \
$(TEST_DIR)/selftest.elf \
+ $(TEST_DIR)/selftest-migration.elf \
$(TEST_DIR)/spapr_hcall.elf \
$(TEST_DIR)/rtas.elf \
$(TEST_DIR)/emulator.elf \
diff --git a/powerpc/unittests.cfg b/powerpc/unittests.cfg
index e71140aa..7ce57de0 100644
--- a/powerpc/unittests.cfg
+++ b/powerpc/unittests.cfg
@@ -36,6 +36,10 @@ smp = 2
extra_params = -m 256 -append 'setup smp=2 mem=256'
groups = selftest
+[selftest-migration]
+file = selftest-migration.elf
+groups = selftest migration
+
[spapr_hcall]
file = spapr_hcall.elf
diff --git a/s390x/Makefile b/s390x/Makefile
index b72f7578..344d46d6 100644
--- a/s390x/Makefile
+++ b/s390x/Makefile
@@ -1,4 +1,5 @@
tests = $(TEST_DIR)/selftest.elf
+tests += $(TEST_DIR)/selftest-migration.elf
tests += $(TEST_DIR)/intercept.elf
tests += $(TEST_DIR)/emulator.elf
tests += $(TEST_DIR)/sieve.elf
diff --git a/s390x/unittests.cfg b/s390x/unittests.cfg
index f5024b6e..a7ad522c 100644
--- a/s390x/unittests.cfg
+++ b/s390x/unittests.cfg
@@ -24,6 +24,10 @@ groups = selftest
# please keep the kernel cmdline in sync with $(TEST_DIR)/selftest.parmfile
extra_params = -append 'test 123'
+[selftest-migration]
+file = selftest-migration.elf
+groups = selftest migration
+
[intercept]
file = intercept.elf
--
2.42.0
WARNING: multiple messages have this Message-ID (diff)
From: Nicholas Piggin <npiggin@gmail.com>
To: Thomas Huth <thuth@redhat.com>
Cc: Laurent Vivier <lvivier@redhat.com>,
linux-s390@vger.kernel.org, Nico Boehr <nrb@linux.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
kvm@vger.kernel.org, David Hildenbrand <david@redhat.com>,
linuxppc-dev@lists.ozlabs.org,
Shaoqin Huang <shahuang@redhat.com>,
Nicholas Piggin <npiggin@gmail.com>,
Andrew Jones <andrew.jones@linux.dev>,
Eric Auger <eric.auger@redhat.com>,
Marc Hartmayer <mhartmay@linux.ibm.com>,
kvmarm@lists.linux.dev, Paolo Bonzini <pbonzini@redhat.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>
Subject: [kvm-unit-tests PATCH v2 9/9] migration: add a migration selftest
Date: Fri, 2 Feb 2024 16:57:40 +1000 [thread overview]
Message-ID: <20240202065740.68643-10-npiggin@gmail.com> (raw)
In-Reply-To: <20240202065740.68643-1-npiggin@gmail.com>
Add a selftest for migration support in guest library and test harness
code. It performs migrations a tight loop to irritate races and bugs in
the test harness code.
Acked-by: Claudio Imbrenda <imbrenda@linux.ibm.com> (s390x)
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This has flushed out several bugs in developing the multi migration test
harness code already.
---
arm/Makefile.common | 1 +
arm/unittests.cfg | 6 ++++++
common/selftest-migration.c | 34 ++++++++++++++++++++++++++++++++++
powerpc/Makefile.common | 1 +
powerpc/unittests.cfg | 4 ++++
s390x/Makefile | 1 +
s390x/unittests.cfg | 4 ++++
7 files changed, 51 insertions(+)
create mode 100644 common/selftest-migration.c
diff --git a/arm/Makefile.common b/arm/Makefile.common
index c2ee568c..371a2c6a 100644
--- a/arm/Makefile.common
+++ b/arm/Makefile.common
@@ -5,6 +5,7 @@
#
tests-common = $(TEST_DIR)/selftest.$(exe)
+tests-common += $(TEST_DIR)/selftest-migration.$(exe)
tests-common += $(TEST_DIR)/spinlock-test.$(exe)
tests-common += $(TEST_DIR)/pci-test.$(exe)
tests-common += $(TEST_DIR)/pmu.$(exe)
diff --git a/arm/unittests.cfg b/arm/unittests.cfg
index fe601cbb..1ffd9a82 100644
--- a/arm/unittests.cfg
+++ b/arm/unittests.cfg
@@ -55,6 +55,12 @@ smp = $MAX_SMP
extra_params = -append 'smp'
groups = selftest
+# Test migration
+[selftest-migration]
+file = selftest-migration.flat
+groups = selftest migration
+
+arch = arm64
# Test PCI emulation
[pci-test]
file = pci-test.flat
diff --git a/common/selftest-migration.c b/common/selftest-migration.c
new file mode 100644
index 00000000..f70c505f
--- /dev/null
+++ b/common/selftest-migration.c
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Machine independent migration tests
+ *
+ * This is just a very simple test that is intended to stress the migration
+ * support in the test harness. This could be expanded to test more guest
+ * library code, but architecture-specific tests should be used to test
+ * migration of tricky machine state.
+ */
+#include <libcflat.h>
+#include <migrate.h>
+
+#if defined(__arm__) || defined(__aarch64__)
+/* arm can only call getchar 15 times */
+#define NR_MIGRATIONS 15
+#else
+#define NR_MIGRATIONS 100
+#endif
+
+int main(int argc, char **argv)
+{
+ int i = 0;
+
+ report_prefix_push("migration");
+
+ for (i = 0; i < NR_MIGRATIONS; i++)
+ migrate_quiet();
+
+ report(true, "simple harness stress test");
+
+ report_prefix_pop();
+
+ return report_summary();
+}
diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
index eb88398d..da4a7bbb 100644
--- a/powerpc/Makefile.common
+++ b/powerpc/Makefile.common
@@ -6,6 +6,7 @@
tests-common = \
$(TEST_DIR)/selftest.elf \
+ $(TEST_DIR)/selftest-migration.elf \
$(TEST_DIR)/spapr_hcall.elf \
$(TEST_DIR)/rtas.elf \
$(TEST_DIR)/emulator.elf \
diff --git a/powerpc/unittests.cfg b/powerpc/unittests.cfg
index e71140aa..7ce57de0 100644
--- a/powerpc/unittests.cfg
+++ b/powerpc/unittests.cfg
@@ -36,6 +36,10 @@ smp = 2
extra_params = -m 256 -append 'setup smp=2 mem=256'
groups = selftest
+[selftest-migration]
+file = selftest-migration.elf
+groups = selftest migration
+
[spapr_hcall]
file = spapr_hcall.elf
diff --git a/s390x/Makefile b/s390x/Makefile
index b72f7578..344d46d6 100644
--- a/s390x/Makefile
+++ b/s390x/Makefile
@@ -1,4 +1,5 @@
tests = $(TEST_DIR)/selftest.elf
+tests += $(TEST_DIR)/selftest-migration.elf
tests += $(TEST_DIR)/intercept.elf
tests += $(TEST_DIR)/emulator.elf
tests += $(TEST_DIR)/sieve.elf
diff --git a/s390x/unittests.cfg b/s390x/unittests.cfg
index f5024b6e..a7ad522c 100644
--- a/s390x/unittests.cfg
+++ b/s390x/unittests.cfg
@@ -24,6 +24,10 @@ groups = selftest
# please keep the kernel cmdline in sync with $(TEST_DIR)/selftest.parmfile
extra_params = -append 'test 123'
+[selftest-migration]
+file = selftest-migration.elf
+groups = selftest migration
+
[intercept]
file = intercept.elf
--
2.42.0
next prev parent reply other threads:[~2024-02-02 6:59 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-02 6:57 [kvm-unit-tests PATCH v2 0/9] Multi-migration support Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 1/9] (arm|powerpc|s390x): Makefile: Fix .aux.o generation Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-02 9:30 ` Andrew Jones
2024-02-02 9:30 ` Andrew Jones
2024-02-05 11:28 ` Thomas Huth
2024-02-05 11:28 ` Thomas Huth
2024-02-05 14:20 ` Marc Hartmayer
2024-02-05 14:20 ` Marc Hartmayer
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 2/9] arch-run: Clean up temporary files properly Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-07 7:58 ` Thomas Huth
2024-02-07 7:58 ` Thomas Huth
2024-02-09 5:01 ` Nicholas Piggin
2024-02-09 5:01 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 3/9] arch-run: Clean up initrd cleanup Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-05 12:04 ` Thomas Huth
2024-02-05 12:04 ` Thomas Huth
2024-02-06 5:20 ` Nicholas Piggin
2024-02-06 5:20 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 4/9] migration: use a more robust way to wait for background job Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-05 14:58 ` Marc Hartmayer
2024-02-05 14:58 ` Marc Hartmayer
2024-02-06 6:50 ` Nicholas Piggin
2024-02-06 6:50 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 5/9] migration: Support multiple migrations Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 6/9] arch-run: rename migration variables Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 7/9] migration: Add quiet migration support Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 8/9] Add common/ directory for architecture-independent tests Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin
2024-02-02 6:57 ` Nicholas Piggin [this message]
2024-02-02 6:57 ` [kvm-unit-tests PATCH v2 9/9] migration: add a migration selftest Nicholas Piggin
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=20240202065740.68643-10-npiggin@gmail.com \
--to=npiggin@gmail.com \
--cc=alexandru.elisei@arm.com \
--cc=andrew.jones@linux.dev \
--cc=david@redhat.com \
--cc=eric.auger@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-s390@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lvivier@redhat.com \
--cc=mhartmay@linux.ibm.com \
--cc=nrb@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=shahuang@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.