[PATCH 0/9] Add support for nested SVM (kernel) v2

Alexander Graf
2008-09-05T07:51:26Z

The current generation of virtualization extensions only supports one VM layer.
While we can't change that, it is pretty easy to emulate the CPU's behavior
and implement the virtualization opcodes ourselves.

This patchset does exactly this for SVM. Using this, a KVM can run within a VM.
Since we're emulating the real CPU's behavior, this should also enable other
VMMs to run within KVM.
So far I've only tested to run KVM inside the VM though.

This was created with help from Joerg Roedel. Since he's not fond of the GIF
handling as it is now, there is no signed-off-by from him for now.

As always, comments and suggestions are highly welcome.

This is v2, taking most comments from Avi into account. Two things are missing:

- save/restore of hflags
- #VMEXIT on save/restore

I'd rather have them submitted as later patches though, so we don't clutter
this already big patchset (I'm slowly getting crazy using git to manage it)

Thanks for reviewing!

Alex

Alexander Graf (9):
Add CPUID feature flag for SVM v2
Clean up VINTR setting v2
Implement GIF, clgi and stgi v2
Add helper functions for nested SVM v2
Implement hsave v2
Add VMLOAD and VMSAVE handlers v2
Add VMRUN handler v2
Add VMEXIT handler and intercepts v2
Allow setting the SVME bit v2

arch/x86/kvm/kvm_svm.h | 11 +
arch/x86/kvm/svm.c | 741 +++++++++++++++++++++++++++++++++++++++++-
include/asm-x86/cpufeature.h | 1 +
include/asm-x86/kvm_host.h | 4 +
4 files changed, 745 insertions(+), 12 deletions(-)