From 08f0434fd732441c91f0d1f535757866b3aaf8f8 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Wed, 16 Sep 2009 14:48:12 +0300 Subject: [PATCH] test: add ipi latency test Signed-off-by: Avi Kivity --- kvm/user/test/x86/vmexit.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/kvm/user/test/x86/vmexit.c b/kvm/user/test/x86/vmexit.c index 76f676d48f..29bb32a118 100644 --- a/kvm/user/test/x86/vmexit.c +++ b/kvm/user/test/x86/vmexit.c @@ -1,5 +1,6 @@ #include "libcflat.h" +#include "smp.h" static inline unsigned long long rdtsc() { @@ -51,6 +52,20 @@ static void mov_to_cr8(void) asm volatile ("mov %0, %%cr8" : : "r"(cr8)); } +static int is_smp(void) +{ + return cpu_count() > 1; +} + +static void nop(void *junk) +{ +} + +static void ipi(void) +{ + on_cpu(1, nop, 0); +} + static struct test { void (*func)(void); const char *name; @@ -60,6 +75,7 @@ static struct test { { vmcall, "vmcall", }, { mov_from_cr8, "mov_from_cr8" }, { mov_to_cr8, "mov_to_cr8" }, + { ipi, "ipi", is_smp }, }; static void do_test(struct test *test) @@ -86,6 +102,8 @@ int main(void) { int i; + smp_init(); + for (i = 0; i < ARRAY_SIZE(tests); ++i) do_test(&tests[i]); -- 2.11.4.GIT