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
