On Fri, Oct 15, 2021 at 12:55 PM Jim Mattson <jmattson@xxxxxxxxxx> 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(-) > > -- > 2.33.0.1079.g6e70778dc9-goog > Ping.