** Description changed:
+ [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 backport 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)
+ * F (KVM instance)
+ * I (bare-metal)
+
+ 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.
+
+
+ [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/ubuntu/autotest/client/tmp/ubuntu_kvm_unit_tests/src/kvm-unit-tests/tests/vmx_ldtr_test'
BUILD_HEAD=8a30588c
timeout -k 1s --foreground 90s /usr/bin/qemu-system-x86_64 --no-reboot
-nodefaults -device pc-testdev -device isa-debug-exit,iobase=0xf4,iosize=0x4
-vnc none -serial stdio -device pci-testdev -machine accel=kvm -kernel
/tmp/tmp.Lnfifekq7r -smp 1 -cpu max,+vmx -append vmx_ldtr_test # -initrd
/tmp/tmp.i9y5hdMh49
enabling apic
paging enabled
cr0 = 80010011
cr3 = 1007000
cr4 = 20
filter = vmx_ldtr_test, test = test_vmx_feature_control
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_flags_touch
filter = vmx_ldtr_test, test = test_vmwrite_flags_touch
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_from_l2_test
filter = vmx_ldtr_test, test = invalid_msr
filter = vmx_ldtr_test, test = v2_null_test
filter = vmx_ldtr_test, test = v2_multiple_entries_test
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_state_area_test
filter = vmx_ldtr_test, test = vmx_guest_state_area_test
filter = vmx_ldtr_test, test = vmentry_movss_shadow_test
filter = vmx_ldtr_test, test = vmentry_unrestricted_guest_test
filter = vmx_ldtr_test, test = vmx_eoi_bitmap_ioapic_scan_test
filter = vmx_ldtr_test, test = vmx_hlt_with_rvi_test
filter = vmx_ldtr_test, test = apic_reg_virt_test
filter = vmx_ldtr_test, test = virt_x2apic_mode_test
filter = vmx_ldtr_test, test = vmx_apic_passthrough_test
filter = vmx_ldtr_test, test = vmx_apic_passthrough_thread_test
filter = vmx_ldtr_test, test = vmx_apic_passthrough_tpr_threshold_test
filter = vmx_ldtr_test, test = vmx_init_signal_test
filter = vmx_ldtr_test, test = vmx_sipi_signal_test
filter = vmx_ldtr_test, test = vmx_vmcs_shadow_test
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_osxsave_test
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_window_test
filter = vmx_ldtr_test, test = vmx_pending_event_test
filter = vmx_ldtr_test, test = vmx_pending_event_hlt_test
filter = vmx_ldtr_test, test = vmx_store_tsc_test
filter = vmx_ldtr_test, test = vmx_preemption_timer_zero_test
filter = vmx_ldtr_test, test = vmx_preemption_timer_tf_test
filter = vmx_ldtr_test, test = vmx_preemption_timer_expiry_test
filter = vmx_ldtr_test, test = ept_access_test_not_present
filter = vmx_ldtr_test, test = ept_access_test_read_only
filter = vmx_ldtr_test, test = ept_access_test_write_only
filter = vmx_ldtr_test, test = ept_access_test_read_write
filter = vmx_ldtr_test, test = ept_access_test_execute_only
filter = vmx_ldtr_test, test = ept_access_test_read_execute
filter = vmx_ldtr_test, test = ept_access_test_write_execute
filter = vmx_ldtr_test, test = ept_access_test_read_write_execute
filter = vmx_ldtr_test, test = ept_access_test_reserved_bits
filter = vmx_ldtr_test, test = ept_access_test_ignored_bits
filter = vmx_ldtr_test, test = ept_access_test_paddr_not_present_ad_disabled
filter = vmx_ldtr_test, test = ept_access_test_paddr_not_present_ad_enabled
filter = vmx_ldtr_test, test = ept_access_test_paddr_read_only_ad_disabled
filter = vmx_ldtr_test, test = ept_access_test_paddr_read_only_ad_enabled
filter = vmx_ldtr_test, test = ept_access_test_paddr_read_write
filter = vmx_ldtr_test, test = ept_access_test_paddr_read_write_execute
filter = vmx_ldtr_test, test = ept_access_test_paddr_read_execute_ad_disabled
filter = vmx_ldtr_test, test = ept_access_test_paddr_read_execute_ad_enabled
filter = vmx_ldtr_test, test = ept_access_test_paddr_not_present_page_fault
filter = vmx_ldtr_test, test = ept_access_test_force_2m_page
filter = vmx_ldtr_test, test = atomic_switch_max_msrs_test
filter = vmx_ldtr_test, test = atomic_switch_overflow_msrs_test
filter = vmx_ldtr_test, test = rdtsc_vmexit_diff_test
filter = vmx_ldtr_test, test = vmx_mtf_test
filter = vmx_ldtr_test, test = vmx_mtf_pdpte_test
filter = vmx_ldtr_test, test = vmx_pf_exception_test
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.
** 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: (unassigned) => Po-Hsu Lin (cypressyew)
** Changed in: linux (Ubuntu Focal)
Assignee: (unassigned) => Po-Hsu Lin (cypressyew)
** Also affects: linux-oem-5.14 (Ubuntu)
Importance: Undecided
Status: New
** 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: (unassigned) => Po-Hsu Lin (cypressyew)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1956315
Title:
vmx_ldtr_test in ubuntu_kvm_unit_tests failed (FAIL: Expected 0 for L1
LDTR selector (got 50))
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-kernel-tests/+bug/1956315/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs