[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] tests/qtest/migration-test: Run the dirty ring tests only wi
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH] tests/qtest/migration-test: Run the dirty ring tests only with the x86 target |
Date: |
Mon, 1 Aug 2022 15:29:05 +0100 |
User-agent: |
Mutt/2.2.6 (2022-06-05) |
* Thomas Huth (thuth@redhat.com) wrote:
> kvm_dirty_ring_supported() only checks whether the dirty ring support
> is available on the x86 host, but it ignores whether the target QEMU
> architecture is x86 or not. Thus the test_vcpu_dirty_limit() test
> currently fails with the assert((strcmp(arch, "x86_64") == 0)) statement
> in dirtylimit_start_vm() if the users run e.g. "make check-qtest-aarch64"
> on their x86 host. Fix it by only executing the tests when we're running
> with a x86_64 target QEMU binary with KVM.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
I think that corresponds to a bug Juan mentioned where it was failing
with a i386 qemu as well.I guess there should be a more generic way!
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> tests/qtest/migration-test.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
> index 71595a74fd..f83360e0e0 100644
> --- a/tests/qtest/migration-test.c
> +++ b/tests/qtest/migration-test.c
> @@ -2439,6 +2439,7 @@ int main(int argc, char **argv)
> {
> char template[] = "/tmp/migration-test-XXXXXX";
> const bool has_kvm = qtest_has_accel("kvm");
> + const char *arch = qtest_get_arch();
> int ret;
>
> g_test_init(&argc, &argv, NULL);
> @@ -2452,7 +2453,7 @@ int main(int argc, char **argv)
> * is touchy due to race conditions on dirty bits (especially on PPC for
> * some reason)
> */
> - if (g_str_equal(qtest_get_arch(), "ppc64") &&
> + if (g_str_equal(arch, "ppc64") &&
> (!has_kvm || access("/sys/module/kvm_hv", F_OK))) {
> g_test_message("Skipping test: kvm_hv not available");
> return g_test_run();
> @@ -2462,7 +2463,7 @@ int main(int argc, char **argv)
> * Similar to ppc64, s390x seems to be touchy with TCG, so disable it
> * there until the problems are resolved
> */
> - if (g_str_equal(qtest_get_arch(), "s390x") && !has_kvm) {
> + if (g_str_equal(arch, "s390x") && !has_kvm) {
> g_test_message("Skipping test: s390x host with KVM is required");
> return g_test_run();
> }
> @@ -2572,7 +2573,7 @@ int main(int argc, char **argv)
> #endif /* CONFIG_TASN1 */
> #endif /* CONFIG_GNUTLS */
>
> - if (kvm_dirty_ring_supported()) {
> + if (g_str_equal(arch, "x86_64") && has_kvm &&
> kvm_dirty_ring_supported()) {
> qtest_add_func("/migration/dirty_ring",
> test_precopy_unix_dirty_ring);
> qtest_add_func("/migration/vcpu_dirty_limit",
> --
> 2.31.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK