Oliver Upton <oupton@xxxxxxxxxx> writes: > 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> > Signed-off-by: Oliver Upton <oupton@xxxxxxxxxx> > --- > x86/vmx_tests.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c > index 3b150323b325..de9a931216e2 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,11 @@ static void rdtsc_vmexit_diff_test(void) > int fail = 0; > int i; > > + if (!(ctrl_cpu_rev[0].clr & CPU_USE_TSC_OFFSET)) { > + printf("CPU doesn't support the 'use TSC offsetting' processor-based VM-execution control.\n"); > + return; > + } > + Can we use test_skip() instead, something like diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c index dd32b3aef08b..bfecf36d37ef 100644 --- a/x86/vmx_tests.c +++ b/x86/vmx_tests.c @@ -9166,6 +9166,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(); ? > test_set_guest(rdtsc_vmexit_diff_test_guest); > > reset_guest_tsc_to_zero(); -- Vitaly