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(-)

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to