Skip to content

Nested Virtualization: Overview

Christoph Egger xen-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest14 patches 35 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14Nested Virtualization: toolstools/libxc/xc_cpuid_x86.c tools/python/xen/xend/XendConfig.py tools/python/xen/xend/XendConstants.py +3 more+68 -111 reply
2/14Nested Virtualization: localeventxen/arch/ia64/xen/hypercall.c xen/common/schedule.c xen/include/asm-ia64/event.h +1 more+15 -156 replies
3/14Nested Virtualization: data structurexen/arch/x86/hvm/svm/vmcb.c xen/include/asm-x86/hvm/hvm.h xen/include/asm-x86/hvm/svm/vmcb.h +1 more+60 -40 replies
4/14Nested Virtualization: function hooksxen/arch/x86/hvm/hvm.c xen/include/asm-x86/hvm/hvm.h+128 -00 replies
5/14Nested Virtualization: corexen/arch/x86/hvm/Makefile xen/arch/x86/hvm/nestedhvm.c xen/include/asm-x86/hvm/nestedhvm.h+813 -02 replies
6/14Nested Virtualization: CRn & paged real modexen/arch/x86/hvm/hvm.c+4 -22 replies
7/14Nested Virtualization: trapxen/arch/x86/hvm/hvm.c xen/include/asm-x86/hvm/hvm.h+58 -56 replies
8/14Nested Virtualization: eferxen/arch/x86/hvm/hvm.c xen/include/asm-x86/cpufeature.h+17 -60 replies
9/14Nested Virtualization: interrupts (generic part)xen/arch/x86/hvm/hvm.c xen/arch/x86/x86_32/asm-offsets.c xen/arch/x86/x86_64/asm-offsets.c+17 -00 replies
10/14Nested Virtualization: svm specific implementationxen/arch/x86/hvm/svm/Makefile xen/arch/x86/hvm/svm/emulate.c xen/arch/x86/hvm/svm/svm.c +6 more+1565 -1316 replies
11/14Nested Virtualization: interrupts (svm specific)xen/arch/x86/hvm/svm/entry.S xen/arch/x86/hvm/svm/intr.c+40 -40 replies
12/14Nested Virtualization: enablementxen/arch/x86/hvm/hvm.c+26 -20 replies
13/14Nested Virtualization: p2m infrastructurexen/arch/x86/debug.c xen/arch/x86/domain.c xen/arch/x86/domctl.c +23 more+704 -6124 replies
14/14Nested Virtualization: hap-on-hapxen/arch/x86/hvm/hvm.c xen/arch/x86/hvm/nestedhvm.c xen/arch/x86/hvm/svm/svm.c +12 more+940 -464 replies

Reviews trailers per patch

1 of 14 patches has a Reviewed-by or Acked-by.

PatchTim Deegan
1/14
2/14
3/14
4/14
5/14
6/14
7/14
8/14
9/14
10/14
11/14
12/14
13/14A-b
14/14

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/14] Nested Virtualization: Overview

Hi!

This patch series brings Nested Virtualization to Xen. This is the third patch series. Improvements to the previous patch submission:

- implement HVM-on-HVM (instead of SVM-on-HVM)
- move cpuid handling into tools (per Keir's request)

There might still be some nuances to fiddle with to make it fit for VMX. Feedback from Intel is appreciated, therefore.

The patch series:

patch 01: add nestedhvm guest config option to the tools.
This is the only one patch touching the tools
patch 02: change local_event_delivery_* to take vcpu argument.
This prevents spurios xen crashes on guest shutdown/destroy with nestedhvm enabled.
patch 03: Add data structures for nested virtualization.
patch 04: add nestedhvm function hooks, described in XenNestedHVM.pdf patch 05: The heart of nested virtualization.
patch 06: 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 07: When injecting an exception into nested guest, inject
#VMEXIT into the guest if intercepted
patch 08: Allow guest to enable SVM in EFER
patch 09: Handle interrupts (generic part)
patch 10: SVM specific implementation for nested virtualization patch 11: Handle interrupts (SVM specific)
patch 12: The piece of code that effectively turns nested virtualization on.
Use HVM_PARAM_* this time.
patch 13: Change p2m infrastructure to operate with per-p2m instead
of per-domain. Combined with patch 15, this allows to run nested guest with hap-on-hap.
patch 14: 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).

Signature · 6 lines
---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