From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qing He Subject: [PATCH 00/17][RFC] Nested virtualization for VMX Date: Thu, 22 Apr 2010 17:41:12 +0800 Message-ID: <1271929289-18572-1-git-send-email-qing.he@intel.com> Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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