diff options
author | Dongxiao Xu <dongxiao.xu@intel.com> | 2012-12-06 16:52:50 +0000 |
---|---|---|
committer | Dongxiao Xu <dongxiao.xu@intel.com> | 2012-12-06 16:52:50 +0000 |
commit | c446e4a2cd9b3e9b5e3cda2b860d0cf48e18a2e2 (patch) | |
tree | 28796eb2eb6a6d401a82bb65d541c5dc83fe0e06 /xen/include/asm-x86/hvm/vmx | |
parent | 5d98adc3e5e859ba23f62ca63450f6a60a9c5e2f (diff) | |
download | xen-c446e4a2cd9b3e9b5e3cda2b860d0cf48e18a2e2.tar.gz xen-c446e4a2cd9b3e9b5e3cda2b860d0cf48e18a2e2.tar.bz2 xen-c446e4a2cd9b3e9b5e3cda2b860d0cf48e18a2e2.zip |
nested vmx: emulate MSR bitmaps
In nested vmx virtualization for MSR bitmaps, L0 hypervisor will trap
all the VM exit from L2 guest by disable the MSR_BITMAP feature. When
handling this VM exit, L0 hypervisor judges whether L1 hypervisor uses
MSR_BITMAP feature and the corresponding bit is set to 1. If so, L0
will inject such VM exit into L1 hypervisor; otherwise, L0 will be
responsible for handling this VM exit.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/include/asm-x86/hvm/vmx')
-rw-r--r-- | xen/include/asm-x86/hvm/vmx/vmcs.h | 1 | ||||
-rw-r--r-- | xen/include/asm-x86/hvm/vmx/vvmx.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/xen/include/asm-x86/hvm/vmx/vmcs.h b/xen/include/asm-x86/hvm/vmx/vmcs.h index cc92f69643..14ac7736a0 100644 --- a/xen/include/asm-x86/hvm/vmx/vmcs.h +++ b/xen/include/asm-x86/hvm/vmx/vmcs.h @@ -427,6 +427,7 @@ int vmx_add_host_load_msr(u32 msr); void vmx_vmcs_switch(struct vmcs_struct *from, struct vmcs_struct *to); void vmx_set_eoi_exit_bitmap(struct vcpu *v, u8 vector); void vmx_clear_eoi_exit_bitmap(struct vcpu *v, u8 vector); +int vmx_check_msr_bitmap(unsigned long *msr_bitmap, u32 msr, int access_type); #endif /* ASM_X86_HVM_VMX_VMCS_H__ */ diff --git a/xen/include/asm-x86/hvm/vmx/vvmx.h b/xen/include/asm-x86/hvm/vmx/vvmx.h index b9137b83f8..067fbe413e 100644 --- a/xen/include/asm-x86/hvm/vmx/vvmx.h +++ b/xen/include/asm-x86/hvm/vmx/vvmx.h @@ -26,6 +26,7 @@ struct nestedvmx { paddr_t vmxon_region_pa; void *iobitmap[2]; /* map (va) of L1 guest I/O bitmap */ + void *msrbitmap; /* map (va) of L1 guest MSR bitmap */ /* deferred nested interrupt */ struct { unsigned long intr_info; |