On Sat, Jan 25, 2020 at 11:16 PM Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> wrote: > > > On 1/24/20 3:46 PM, Sean Christopherson wrote: > > Snapshot the delta of the last run and display it in the report if the > > test fails. Abort the run loop as soon as the threshold is reached so > > that the displayed delta is guaranteed to a failed delta. Displaying > > the delta helps triage failures, e.g. is my system completely broken or > > did I get unlucky, and aborting the loop early saves 99900 runs when > > the system is indeed broken. > > > > Cc: Nadav Amit <nadav.amit@xxxxxxxxx> > > Cc: Aaron Lewis <aaronlewis@xxxxxxxxxx> > > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > > --- > > x86/vmx_tests.c | 11 ++++++----- > > 1 file changed, 6 insertions(+), 5 deletions(-) > > > > diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c > > index b31c360..4049dec 100644 > > --- a/x86/vmx_tests.c > > +++ b/x86/vmx_tests.c > > @@ -9204,6 +9204,7 @@ static unsigned long long rdtsc_vmexit_diff_test_iteration(void) > > > > static void rdtsc_vmexit_diff_test(void) > > { > > + unsigned long long delta; > > int fail = 0; > > int i; > > > > @@ -9226,17 +9227,17 @@ static void rdtsc_vmexit_diff_test(void) > > vmcs_write(EXI_MSR_ST_CNT, 1); > > vmcs_write(EXIT_MSR_ST_ADDR, virt_to_phys(exit_msr_store)); > > > > - for (i = 0; i < RDTSC_DIFF_ITERS; i++) { > > - if (rdtsc_vmexit_diff_test_iteration() >= > > - HOST_CAPTURED_GUEST_TSC_DIFF_THRESHOLD) > > + for (i = 0; i < RDTSC_DIFF_ITERS && fail < RDTSC_DIFF_FAILS; i++) { > > + delta = rdtsc_vmexit_diff_test_iteration(); > > + if (delta >= HOST_CAPTURED_GUEST_TSC_DIFF_THRESHOLD) > > fail++; > > } > > > > enter_guest(); > > > > report(fail < RDTSC_DIFF_FAILS, > > - "RDTSC to VM-exit delta too high in %d of %d iterations", > > - fail, RDTSC_DIFF_ITERS); > > + "RDTSC to VM-exit delta too high in %d of %d iterations, last = %llu", > > + fail, i, delta); > > } > > > > static int invalid_msr_init(struct vmcs *vmcs) > Reviewed-by: Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> Reviewed-by: Aaron Lewis <aaronlewis@xxxxxxxxxx>