Re: [kvm-unit-tests PATCH v2 0/3] Regression test for L1 LDTR persistence bug

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

 



On 10/15/21 21:55, Jim Mattson wrote:
In Linux commit afc8de0118be ("KVM: nVMX: Set LDTR to its
architecturally defined value on nested VM-Exit"), Sean suggested that
this bug was likely benign, but it turns out that--for us, at
least--it can result in live migration failures. On restore, we call
KVM_SET_SREGS before KVM_SET_NESTED_STATE, so when L2 is active at the
time of save/restore, the target vmcs01 is temporarily populated with
L2 values. Hence, the LDTR visible to L1 after the next emulated
VM-exit is L2's, rather than its own.

This issue is significant enough that it warrants a regression
test. Unfortunately, at the moment, the best we can do is check for
the LDTR persistence bug. I'd like to be able to trigger a
save/restore from within the L2 guest, but AFAICT, there's no way to
do that under qemu. Does anyone want to implement a qemu ISA test
device that triggers a save/restore when its configured I/O port is
written to?

Jim Mattson (3):
   x86: Fix operand size for lldt
   x86: Make set_gdt_entry usable in 64-bit mode
   x86: Add a regression test for L1 LDTR persistence bug

v1 -> v2:
   Reworded report messages at Sean's suggestion.
lib/x86/desc.c | 41 +++++++++++++++++++++++++++++++----------
  lib/x86/desc.h      |  3 ++-
  lib/x86/processor.h |  2 +-
  x86/cstart64.S      |  1 +
  x86/vmx_tests.c     | 39 +++++++++++++++++++++++++++++++++++++++
  5 files changed, 74 insertions(+), 12 deletions(-)


Queued patches 1 and 3; the function of 2 is also done by my own GDT/IDT cleanup series, which is also present in Aaron's #PF tests.

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