From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Egger Subject: [PATCH 00/13] Nested Virtualization: Overview Date: Fri, 12 Nov 2010 19:39:17 +0100 Message-ID: <201011121939.17994.Christoph.Egger@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline 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 Hi! This patch series brings Nested Virtualization to Xen. This is the sixth patch series. Improvements to the previous patch submission: - Move GIF definition into SVM - Move VMEXIT emulation into SVM - Introduce hooks for getting host/guest cr3 for use with hap-on-hap per proposal from Eddie Dong - Moved fields from struct nestedhvm into SVM - Renamed struct nestedhvm to struct nestedvcpu - Reworked VMRUN and VMEXIT emulation. It uses a defered emulation mechanism that makes interrupt handling more efficient and is closer to what VMX is doing - VMCB is peristent mapped. Only remap the VMCB when l1 guest changes the address. The patch series: patch 01: add nestedhvm guest config option to the tools. This is the only one patch touching the tools patch 02: Add data structures for nested virtualization. patch 03: add nestedhvm function hooks. patch 04: The heart of nested virtualization. patch 05: Allow switch to paged real mode during vmrun emulation. Emulate cr0 and cr4 when guest does not intercept them (i.e. Hyper-V/Windows7, KVM) patch 06: When injecting an exception into nested guest, inject #VMEXIT into the guest if intercepted. patch 07: Allow guest to enable SVM in EFER only on AMD. patch 08: Handle interrupts (generic part). patch 09: SVM specific implementation for nested virtualization. patch 10: Handle interrupts (SVM specific). patch 11: The piece of code that effectively turns on nested virtualization. patch 12: Move dirty_vram from struct hvm_domain to struct p2m_domain. This change is the first part from a larger not-yet-ready change where the vram and log_dirty tracking is teached to work on per p2m. patch 13: Handle nested pagefault to enable hap-on-hap and handle nested guest page-table-walks to emulate instructions the guest does not intercept (i.e. WBINVD with Windows 7). -- ---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85609 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632