** 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" + * 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). + 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) + * B (bare-metal / KVM instance) * F (KVM instance) - * I (KVM instance / bare-metal) + * 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. [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.
-- 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 ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs