Nested VMX support v2

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

 



The following patches implement nested VMX support. The patches enable a guest
to use the VMX APIs in order to run its own nested guest (i.e., enable running
other hypervisors which use VMX under KVM). The current patches support running
Linux under a nested KVM using shadow page table (with bypass_guest_pf
disabled). SMP support was fixed.  Reworking EPT support to mesh cleanly with
the current shadow paging design per Avi's comments is a work-in-progress.  

The current patches only support a single nested hypervisor, which can only run
a single guest (multiple guests are work in progress). Only 64-bit nested
hypervisors are supported.

Additional patches for running Windows under nested KVM, and Linux under nested
VMware server(!), are currently running in the lab. We are in the process of
forward-porting those patches to -tip.

This patches were written by:
     Orit Wasserman, oritw@xxxxxxxxxx
     Ben-Ami Yassor, benami@xxxxxxxxxx
     Abel Gordon, abelg@xxxxxxxxxx
     Muli Ben-Yehuda, muli@xxxxxxxxxx
     
With contributions by:
     Anthony Liguori, aliguori@xxxxxxxxxx
     Mike Day, mday@xxxxxxxxxx

This work was inspired by the nested SVM support by Alexander Graf and Joerg
Roedel.

Changes since v2:
	Added check to nested_vmx_get_msr.
	Static initialization of the vmcs_field_to_offset_table array.
	Use the memory allocated by L1 for VMCS12 to store the shadow vmcs.
	Some optimization to the prepare_vmcs_12 function.

vpid allocation will be updated with the multiguest support (work in progress).
We are working on fixing the cr0.TS handling, it works for nested kvm by not 
for vmware server.
--
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