Re: [kvm-unit-tests PATCH] x86: VMX: Add a VMX-preemption timer expiration test

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

 



On Mon, Oct 12, 2020 at 11:31 AM Nadav Amit <nadav.amit@xxxxxxxxx> wrote:
>
> > On Oct 12, 2020, at 11:29 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
> >
> > On 12/10/20 20:17, Nadav Amit wrote:
> >>> KVM clearly doesn't adhere to the architectural specification. I don't
> >>> know what is wrong with your Broadwell machine.
> >> Are you saying that the test is expected to fail on KVM? And that Sean’s
> >> failures are expected?
> >
> > It's not expected to fail, but it's apparently broken.
>
> Hm… Based on my results on bare-metal, it might be an architectural issue or
> a test issue, and not a KVM issue.

>From section 25.5.1 of the SDM, volume 3:

If the last VM entry was performed with the 1-setting of “activate
VMX-preemption timer” VM-execution control,
the VMX-preemption timer counts down (from the value loaded by VM
entry; see Section 26.7.4) in VMX non-
root operation. When the timer counts down to zero, it stops counting
down and a VM exit occurs (see Section
25.2).

The test is actually quite lax, in that it doesn't start tracking VMX
non-root operation time until actually in the guest. Hardware is free
to start tracking VMX non-root operation time during VM-entry.

If the test can both observe a TSC value after the VMX-preemption
timer deadline *and* store that value to memory, then the store
instruction must have started executing after the VMX-preemption timer
has counted down to zero. Per the SDM, a VM-exit should have occurred
before the store could retire.

Of course, there could be a test bug.




[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