vmx_ldtr_test in ubuntu_kvm_unit_tests failed (FAIL: Expected 0 for L1 LDTR selector (got 50))
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-kernel-tests |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Medium
|
Po-Hsu Lin | ||
Focal |
Fix Released
|
Medium
|
Po-Hsu Lin | ||
Impish |
Fix Released
|
Medium
|
Po-Hsu Lin | ||
Jammy |
Fix Released
|
Undecided
|
Unassigned | ||
linux-oem-5.14 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Bionic |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
Impish |
Invalid
|
Undecided
|
Unassigned | ||
Jammy |
Invalid
|
Undecided
|
Unassigned |
Bug Description
[Impact]
vmx_ldtr_test in ubuntu_
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:/
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_
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.
[Original bug description]
Issue found on Bionic 4.15.0-166.174 with node rizzo
Running 'kvm-ok'
INFO: /dev/kvm exists
KVM acceleration can be used
'/home/
BUILD_
timeout -k 1s --foreground 90s /usr/bin/
enabling apic
paging enabled
cr0 = 80010011
cr3 = 1007000
cr4 = 20
filter = vmx_ldtr_test, test = test_vmx_
filter = vmx_ldtr_test, test = test_vmxon
filter = vmx_ldtr_test, test = test_vmptrld
filter = vmx_ldtr_test, test = test_vmclear
filter = vmx_ldtr_test, test = test_vmptrst
filter = vmx_ldtr_test, test = test_vmwrite_vmread
filter = vmx_ldtr_test, test = test_vmcs_high
filter = vmx_ldtr_test, test = test_vmcs_lifecycle
filter = vmx_ldtr_test, test = test_vmx_caps
filter = vmx_ldtr_test, test = test_vmread_
filter = vmx_ldtr_test, test = test_vmwrite_
filter = vmx_ldtr_test, test = null
filter = vmx_ldtr_test, test = vmenter
filter = vmx_ldtr_test, test = preemption timer
filter = vmx_ldtr_test, test = control field PAT
filter = vmx_ldtr_test, test = control field EFER
filter = vmx_ldtr_test, test = CR shadowing
filter = vmx_ldtr_test, test = I/O bitmap
filter = vmx_ldtr_test, test = instruction intercept
filter = vmx_ldtr_test, test = EPT A/D disabled
filter = vmx_ldtr_test, test = EPT A/D enabled
filter = vmx_ldtr_test, test = PML
filter = vmx_ldtr_test, test = interrupt
filter = vmx_ldtr_test, test = nmi_hlt
filter = vmx_ldtr_test, test = debug controls
filter = vmx_ldtr_test, test = MSR switch
filter = vmx_ldtr_test, test = vmmcall
filter = vmx_ldtr_test, test = disable RDTSCP
filter = vmx_ldtr_test, test = int3
filter = vmx_ldtr_test, test = into
filter = vmx_ldtr_test, test = exit_monitor_
filter = vmx_ldtr_test, test = invalid_msr
filter = vmx_ldtr_test, test = v2_null_test
filter = vmx_ldtr_test, test = v2_multiple_
filter = vmx_ldtr_test, test = fixture_test_case1
filter = vmx_ldtr_test, test = fixture_test_case2
filter = vmx_ldtr_test, test = invvpid_test
filter = vmx_ldtr_test, test = vmx_controls_test
filter = vmx_ldtr_test, test = vmx_host_
filter = vmx_ldtr_test, test = vmx_guest_
filter = vmx_ldtr_test, test = vmentry_
filter = vmx_ldtr_test, test = vmentry_
filter = vmx_ldtr_test, test = vmx_eoi_
filter = vmx_ldtr_test, test = vmx_hlt_
filter = vmx_ldtr_test, test = apic_reg_virt_test
filter = vmx_ldtr_test, test = virt_x2apic_
filter = vmx_ldtr_test, test = vmx_apic_
filter = vmx_ldtr_test, test = vmx_apic_
filter = vmx_ldtr_test, test = vmx_apic_
filter = vmx_ldtr_test, test = vmx_init_
filter = vmx_ldtr_test, test = vmx_sipi_
filter = vmx_ldtr_test, test = vmx_vmcs_
filter = vmx_ldtr_test, test = vmx_ldtr_test
Test suite: vmx_ldtr_test
PASS: Expected 18 for L2 LDTR selector (got 18)
FAIL: Expected 0 for L1 LDTR selector (got 50)
filter = vmx_ldtr_test, test = vmx_cr_load_test
filter = vmx_ldtr_test, test = vmx_cr4_
filter = vmx_ldtr_test, test = vmx_nm_test
filter = vmx_ldtr_test, test = vmx_db_test
filter = vmx_ldtr_test, test = vmx_nmi_window_test
filter = vmx_ldtr_test, test = vmx_intr_
filter = vmx_ldtr_test, test = vmx_pending_
filter = vmx_ldtr_test, test = vmx_pending_
filter = vmx_ldtr_test, test = vmx_store_tsc_test
filter = vmx_ldtr_test, test = vmx_preemption_
filter = vmx_ldtr_test, test = vmx_preemption_
filter = vmx_ldtr_test, test = vmx_preemption_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = ept_access_
filter = vmx_ldtr_test, test = atomic_
filter = vmx_ldtr_test, test = atomic_
filter = vmx_ldtr_test, test = rdtsc_vmexit_
filter = vmx_ldtr_test, test = vmx_mtf_test
filter = vmx_ldtr_test, test = vmx_mtf_pdpte_test
filter = vmx_ldtr_test, test = vmx_pf_
filter = vmx_ldtr_test, test = vmx_pf_no_vpid_test
filter = vmx_ldtr_test, test = vmx_pf_invvpid_test
filter = vmx_ldtr_test, test = vmx_pf_vpid_test
SUMMARY: 5 tests, 1 unexpected failures
FAIL vmx_ldtr_test (5 tests, 1 unexpected failures)
This is a new test added into vmx (and split out for debug purpose), so it's not a regression.
CVE References
description: | updated |
tags: | added: 4.15 bionic sru-20211129 ubuntu-kvm-unit-tests |
Changed in linux (Ubuntu Impish): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
status: | New → In Progress |
Changed in linux (Ubuntu Jammy): | |
status: | Incomplete → Fix Released |
description: | updated |
Changed in linux (Ubuntu Focal): | |
status: | Incomplete → In Progress |
Changed in linux (Ubuntu Bionic): | |
status: | Incomplete → In Progress |
Changed in ubuntu-kernel-tests: | |
status: | New → In Progress |
Changed in linux (Ubuntu Bionic): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu Focal): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux-oem-5.14 (Ubuntu Bionic): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu Focal): | |
status: | New → In Progress |
Changed in linux-oem-5.14 (Ubuntu Impish): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu Jammy): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu Focal): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in linux (Ubuntu Impish): | |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
Changed in ubuntu-kernel-tests: | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
status: | In Progress → Fix Released |
Found also on 2022.01. 03/impish/ linux-oracle/ 5.13.0- 1016.20