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]

 



On 30/06/20 21:35, Sean Christopherson wrote:
> 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>
> 

Queued, thanks.

Paolo




[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