[Bug 53631] New: nVMX: Support exit/entry MSR load/store

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=53631

           Summary: nVMX: Support exit/entry MSR load/store
           Product: Virtualization
           Version: unspecified
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: kvm
        AssignedTo: virtualization_kvm@xxxxxxxxxxxxxxxxxxxx
        ReportedBy: nyh@xxxxxxxxxxxxxxxxxxx
        Regression: No


Currently, nested VMX does not allow L1 to use the MSR load/store feature on
entry/exit. The code fails entry (from L1 to L2) if these VMCS features are
used:

        if (vmcs12->vm_entry_msr_load_count > 0 ||
            vmcs12->vm_exit_msr_load_count > 0 ||
            vmcs12->vm_exit_msr_store_count > 0) {
                pr_warn_ratelimited("%s: VMCS MSR_{LOAD,STORE} unsupported\n",
                                    __func__);
                nested_vmx_failValid(vcpu, VMXERR_ENTRY_INVALID_CONTROL_FIELD);
                return 1;
        }

This was not a big problem if L1 is also KVM, because KVM didn't use this
feature - it only uses it in case of EPT for switching the EFER (see
explanation in http://kerneltrap.org/mailarchive/linux-kvm/2010/5/2/6261577),
and in that case there is a simpler alternative: supporting
VM_ENTRY/EXIT_LOAD_IA32_EFER is enough. So this is what we did in the nested
EPT patches proposed in bug 53611.

However, it is likely that for different L1s (or even KVM in the future), we'll
need to support the generic MSR load/store feature.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux