Re: [kvm-unit-tests PATCH] x86: nVMX: Print more (accurate) info if RDTSC diff test fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ping.

On Mon, Jan 27, 2020 at 06:30:11AM -0800, Aaron Lewis wrote:
> 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>



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux