The RDTSC VM-exit test requires the 'use TSC offsetting' processor-based VM-execution control be allowed on the host. Check this precondition before running the test rather than asserting it later on to avoid erroneous failures on a host without TSC offsetting. Cc: Aaron Lewis <aaronlewis@xxxxxxxxxx> Cc: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> Signed-off-by: Oliver Upton <oupton@xxxxxxxxxx> --- x86/vmx_tests.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c index 3b150323b325..b31c360c5f3c 100644 --- a/x86/vmx_tests.c +++ b/x86/vmx_tests.c @@ -9161,9 +9161,6 @@ static void vmx_vmcs_shadow_test(void) */ static void reset_guest_tsc_to_zero(void) { - TEST_ASSERT_MSG(ctrl_cpu_rev[0].clr & CPU_USE_TSC_OFFSET, - "Expected support for 'use TSC offsetting'"); - vmcs_set_bits(CPU_EXEC_CTRL0, CPU_USE_TSC_OFFSET); vmcs_write(TSC_OFFSET, -rdtsc()); } @@ -9210,6 +9207,9 @@ static void rdtsc_vmexit_diff_test(void) int fail = 0; int i; + if (!(ctrl_cpu_rev[0].clr & CPU_USE_TSC_OFFSET)) + test_skip("CPU doesn't support the 'use TSC offsetting' processor-based VM-execution control.\n"); + test_set_guest(rdtsc_vmexit_diff_test_guest); reset_guest_tsc_to_zero(); -- 2.25.0.341.g760bfbb309-goog