aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/kvm_svm.h
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2008-11-25 14:17:07 -0500
committerAvi Kivity <avi@redhat.com>2009-03-24 05:02:47 -0400
commit3d6368ef580a4dff012960834bba4e28d3c1430c (patch)
treeb2853fd9bd2bdc97f4bea2880a644d9e5e5abecd /arch/x86/kvm/kvm_svm.h
parent5542675baa7e62ca4d18278c8758b6a4ec410639 (diff)
KVM: SVM: Add VMRUN handler
This patch implements VMRUN. VMRUN enters a virtual CPU and runs that in the same context as the normal guest CPU would run. So basically it is implemented the same way, a normal CPU would do it. We also prepare all intercepts that get OR'ed with the original intercepts, as we do not allow a level 2 guest to be intercepted less than the first level guest. v2 implements the following improvements: - fixes the CPL check - does not allocate iopm when not used - remembers the host's IF in the HIF bit in the hflags v3: - make use of the new permission checking - add support for V_INTR_MASKING_MASK v4: - use host page backed hsave v5: - remove IOPM merging code v6: - save cr4 so PAE l1 guests work v7: - return 0 on vmrun so we check the MSRs too - fix MSR check to use the correct variable Acked-by: Joerg Roedel <joro@8bytes.org> Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/kvm_svm.h')
-rw-r--r--arch/x86/kvm/kvm_svm.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kvm/kvm_svm.h b/arch/x86/kvm/kvm_svm.h
index a0877cac7b9c..91673413d8f7 100644
--- a/arch/x86/kvm/kvm_svm.h
+++ b/arch/x86/kvm/kvm_svm.h
@@ -43,6 +43,14 @@ struct vcpu_svm {
43 u32 *msrpm; 43 u32 *msrpm;
44 struct vmcb *hsave; 44 struct vmcb *hsave;
45 u64 hsave_msr; 45 u64 hsave_msr;
46
47 u64 nested_vmcb;
48
49 /* These are the merged vectors */
50 u32 *nested_msrpm;
51
52 /* gpa pointers to the real vectors */
53 u64 nested_vmcb_msrpm;
46}; 54};
47 55
48#endif 56#endif