[B/F/I][OEM-5.14][SRU][PATCH 0/1] Fix vmx_ldtr_test test failure in ubuntu_kvm_unit_tests

Po-Hsu Lin po-hsu.lin at canonical.com
Wed Apr 6 04:36:19 UTC 2022


[Impact]
vmx_ldtr_test in ubuntu_kvm_unit_tests will fail with:
    FAIL: Expected 0 for L1 LDTR selector (got 50)

It's a test for commit afc8de01 "KVM: nVMX: Set LDTR to its
architecturally defined value on nested VM-Exit"

According to Intel 64 and IA-32 Architectures Software Developer's
Manual, L1's LDTR should be 0 after an emulated VM-exit from L2.

[Fix]
* afc8de01 "KVM: nVMX: Set LDTR to its architecturally defined value
on nested VM-Exit"

We already have this patch in Jammy.
This patch can be cherry-picked into F/F-OEM-5.14/I. But some
straightforward backport work is required for Bionic, as the code
snippet for nested KVM haven't been split out to vmx/nested.c
(55d2375e KVM: nVMX: Move nested code to dedicated files).

[Test]
Test kernels can be found here:
https://people.canonical.com/~phlin/kernel/lp-1956315-vmx-ldtr/

Tested with:
 * B (bare-metal / KVM instance)
 * F (KVM instance)
 * I (bare-metal / KVM instance)

With this patched kernel, this test will pass:
    PASS: Expected 0 for L1 LDTR selector (got 0)

Also tested with ubuntu_kvm_unit_tests and ubuntu_kvm_smoke_test to
make sure this is not causing any other regressions.

[Where problem could occur]
If the patch is incorrect it might affect the nested KVM functionality
while existing from L2 to L1.

Sean Christopherson (1):
  KVM: nVMX: Set LDTR to its architecturally defined value on nested
    VM-Exit

 arch/x86/kvm/vmx/nested.c | 4 ++++
 1 file changed, 4 insertions(+)

-- 
2.7.4




More information about the kernel-team mailing list