summaryrefslogtreecommitdiff
path: root/kvm
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-09-16 12:25:48 +0300
committerMarcelo Tosatti <mtosatti@redhat.com>2009-09-16 16:00:45 -0300
commit7964148f257c17820e7ff9ba6919c4a69fc60226 (patch)
tree2ad1d72bafebb955b2fcbaa9d3bb826514abfc0c /kvm
parenttest: Add vmcall latency test (diff)
downloadqemu-kvm-7964148f257c17820e7ff9ba6919c4a69fc60226.tar.gz
qemu-kvm-7964148f257c17820e7ff9ba6919c4a69fc60226.tar.bz2
qemu-kvm-7964148f257c17820e7ff9ba6919c4a69fc60226.zip
test: add cr8 latency tests
In light of the recent cr8/ept problem. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'kvm')
-rw-r--r--kvm/user/test/x86/vmexit.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kvm/user/test/x86/vmexit.c b/kvm/user/test/x86/vmexit.c
index bd1895f60..cce26d92f 100644
--- a/kvm/user/test/x86/vmexit.c
+++ b/kvm/user/test/x86/vmexit.c
@@ -37,12 +37,28 @@ static void vmcall(void)
asm volatile ("vmcall" : "+a"(a), "=b"(b), "=c"(c), "=d"(d));
}
+static void mov_from_cr8(void)
+{
+ unsigned long cr8;
+
+ asm volatile ("mov %%cr8, %0" : "=r"(cr8));
+}
+
+static void mov_to_cr8(void)
+{
+ unsigned long cr8 = 0;
+
+ asm volatile ("mov %0, %%cr8" : : "r"(cr8));
+}
+
static struct test {
void (*func)(void);
const char *name;
} tests[] = {
{ cpuid, "cpuid", },
{ vmcall, "vmcall", },
+ { mov_from_cr8, "mov_from_cr8" },
+ { mov_to_cr8, "mov_to_cr8" },
};
static void do_test(struct test *test)