x86: VMX: Check precondition for RDTSC test
PATCH v2 1/1 x86: VMX: Check precondition for RDTSC test
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.
--- x86/vmx_tests.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
x86/vmx_tests.c +3 -3
@@ -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 ();
Signature · 1 line
2.25.0.341.g760bfbb309-goog
Quoted 27 lines · Oliver Upton
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 <[email protected]>Cc Vitaly Kuznetsov <[email protected]>Signed-off-by Oliver Upton <[email protected]>--- x86/vmx_tests.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)x86/vmx_tests.c +0
-3@@ -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 ()); }
x86/vmx_tests.c static void rdtsc_vmexit_diff_test(void) · line 9215
Quoted 9 lines
x86/vmx_tests.c +3
-0@@ -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 ();
Signature · 1 line
Vitaly
Quoted 28 lines · Oliver Upton
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 <[email protected]>Cc Vitaly Kuznetsov <[email protected]>Signed-off-by Oliver Upton <[email protected]>--- x86/vmx_tests.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)x86/vmx_tests.c +0
-3@@ -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 ()); }
x86/vmx_tests.c static void rdtsc_vmexit_diff_test(void) · line 9215
Quoted 9 lines
x86/vmx_tests.c +3
-0@@ -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 ();
Queued this one now, thanks.
Paolo