This patch set enables nested virtualization for VMX, That
is to allow a VMX guest (L1) to run other VMX guests (L2).
The patch can generally run on different configurations:
- EPT-on-EPT, shadow-on-EPT, shadow-on-shadow
- different 32/64 combination of L1 and L2
- L1/L2 SMP
EPT-on-EPT is however, preferrable due to performance
advantage, I've tested the patch on a 64bit NHM L0,
against Xen cs. 21190. With EPT-on-EPT and a a kernel
build workload, L2 needs around 17% more time to complete.
Known problems:
- L1/L2=64/64, shadow-on-shadow doesn't work as for now
- On 21190, even without nested patchset, Xen as L1
suffers a considerable booting lag, this phenomenon
was not observed on my previous base, around cs.
20200
- multiple L2 in one L1 hasn't been tested
The patch list is as below, it contains 3 preparation
patches (01 -- 03), 11 generic patches (04 -- 14), 1 to
enable EPT-on-EPT (15), and 2 support patches (16, 17).
[PATCH 01/17] vmx: nest: fix CR4.VME in update_guest_cr
[PATCH 02/17] vmx: nest: rename host_vmcs
[PATCH 03/17] vmx: nest: wrapper for control update
[PATCH 04/17] vmx: nest: domain and vcpu flags
[PATCH 05/17] vmx: nest: nested control structure
[PATCH 06/17] vmx: nest: virtual vmcs layout
[PATCH 07/17] vmx: nest: handling VMX instruction exits
[PATCH 08/17] vmx: nest: L1 <-> L2 context switch
[PATCH 09/17] vmx: nest: interrupt
[PATCH 10/17] vmx: nest: VMExit handler in L2
[PATCH 11/17] vmx: nest: L2 tsc
[PATCH 12/17] vmx: nest: CR0.TS and #NM
[PATCH 13/17] vmx: nest: capability reporting MSRs
[PATCH 14/17] vmx: nest: enable virtual VMX
[PATCH 15/17] vmx: nest: virtual ept for nested
[PATCH 16/17] vmx: nest: hvmtrace for nested
[PATCH 17/17] tools: nest: allow enabling nesting
Thanks,
Qing He
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|