aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNadav Amit <namit@vmware.com>2020-06-30 02:45:13 -0700
committerPaolo Bonzini <pbonzini@redhat.com>2020-07-01 08:10:29 -0400
commit10a65fc45419b7859bb6dd0a7f568eea45cbedb2 (patch)
treeb025dc4a1588c0b4491cfddd0b30d3a9ceaaa915
parentec4fed57aa932c2ad869f61464af203b0f119d5a (diff)
downloadkvm-unit-tests-10a65fc45419b7859bb6dd0a7f568eea45cbedb2.tar.gz
x86: svm: check TSC adjust support
MSR_IA32_TSC_ADJUST may be supported by KVM on AMD machines, but it does not show on AMD manual. Check CPUID to see if it supported before running the relevant tests. Signed-off-by: Nadav Amit <namit@vmware.com> Message-Id: <20200630094516.22983-3-namit@vmware.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--x86/svm_tests.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/x86/svm_tests.c b/x86/svm_tests.c
index a2c993d..92cefaf 100644
--- a/x86/svm_tests.c
+++ b/x86/svm_tests.c
@@ -893,6 +893,11 @@ static bool npt_rw_l1mmio_check(struct svm_test *test)
#define TSC_OFFSET_VALUE (~0ull << 48)
static bool ok;
+static bool tsc_adjust_supported(void)
+{
+ return this_cpu_has(X86_FEATURE_TSC_ADJUST);
+}
+
static void tsc_adjust_prepare(struct svm_test *test)
{
default_prepare(test);
@@ -2010,7 +2015,7 @@ struct svm_test svm_tests[] = {
{ "npt_rw_l1mmio", npt_supported, npt_rw_l1mmio_prepare,
default_prepare_gif_clear, npt_rw_l1mmio_test,
default_finished, npt_rw_l1mmio_check },
- { "tsc_adjust", default_supported, tsc_adjust_prepare,
+ { "tsc_adjust", tsc_adjust_supported, tsc_adjust_prepare,
default_prepare_gif_clear, tsc_adjust_test,
default_finished, tsc_adjust_check },
{ "latency_run_exit", default_supported, latency_prepare,