So one can measure SMP overhead.

Signed-off-by: Marcelo Tosatti <mtosa...@redhat.com>

Index: qemu-kvm-test/kvm/user/test/x86/vmexit.c
===================================================================
--- qemu-kvm-test.orig/kvm/user/test/x86/vmexit.c
+++ qemu-kvm-test/kvm/user/test/x86/vmexit.c
@@ -85,6 +85,9 @@ static struct test {
        { vmcall, "vmcall", },
        { mov_from_cr8, "mov_from_cr8" },
        { mov_to_cr8, "mov_to_cr8" },
+};
+
+static struct test smp_tests[] = {
        { ipi, "ipi", is_smp },
        { ipi_halt, "ipi+halt", is_smp },
 };
@@ -113,14 +116,25 @@ static void do_test(struct test *test)
 
 #define ARRAY_SIZE(_x) (sizeof(_x) / sizeof((_x)[0]))
 
-int main(void)
+static void do_tests(void *junk)
 {
        int i;
 
-       smp_init();
-
        for (i = 0; i < ARRAY_SIZE(tests); ++i)
                do_test(&tests[i]);
+}
+
+int main(void)
+{
+       int i, n;
+
+       smp_init();
+
+       for (n = cpu_count(); n > 0; n--)
+               on_cpu(n-1, do_tests, 0, 0);
+
+       for (i = 0; i < ARRAY_SIZE(smp_tests); ++i)
+               do_test(&smp_tests[i]);
 
        return 0;
 }


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to