diff options
author | Liu, Jinsong <jinsong.liu@intel.com> | 2011-12-01 12:24:06 +0100 |
---|---|---|
committer | Liu, Jinsong <jinsong.liu@intel.com> | 2011-12-01 12:24:06 +0100 |
commit | 7d3ada69de442c1a65f5f5686150f1ff1b6131bc (patch) | |
tree | 4e8204eb939bc5985961ef7ed7fa96a50f39c9a4 /xen/include/asm-x86/hvm/vmx | |
parent | b0933946291cba0f47f288ad6eb22a3c69321091 (diff) | |
download | xen-7d3ada69de442c1a65f5f5686150f1ff1b6131bc.tar.gz xen-7d3ada69de442c1a65f5f5686150f1ff1b6131bc.tar.bz2 xen-7d3ada69de442c1a65f5f5686150f1ff1b6131bc.zip |
X86: implement PCID/INVPCID for hvm
This patch handle PCID/INVPCID for hvm:
For hap hvm, we enable PCID/INVPCID, since no need to intercept
INVPCID, and we just set INVPCID non-root behavior as running natively;
For shadow hvm, we disable PCID/INVPCID, otherwise we need to emulate
INVPCID at vmm by setting INVPCID non-root behavior as vmexit.
Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
Committed-by: Jan Beulich <jbeulich@suse.com>
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/vmx.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 acd7765348..6d58c37ba9 100644 --- a/xen/include/asm-x86/hvm/vmx/vmcs.h +++ b/xen/include/asm-x86/hvm/vmx/vmcs.h @@ -184,6 +184,7 @@ extern u32 vmx_vmentry_control; #define SECONDARY_EXEC_WBINVD_EXITING 0x00000040 #define SECONDARY_EXEC_UNRESTRICTED_GUEST 0x00000080 #define SECONDARY_EXEC_PAUSE_LOOP_EXITING 0x00000400 +#define SECONDARY_EXEC_ENABLE_INVPCID 0x00001000 extern u32 vmx_secondary_exec_control; extern bool_t cpu_has_vmx_ins_outs_instr_info; diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vmx/vmx.h index 03cb7d97b5..f003f84be1 100644 --- a/xen/include/asm-x86/hvm/vmx/vmx.h +++ b/xen/include/asm-x86/hvm/vmx/vmx.h @@ -129,6 +129,7 @@ void vmx_update_cpu_exec_control(struct vcpu *v); #define EXIT_REASON_INVVPID 53 #define EXIT_REASON_WBINVD 54 #define EXIT_REASON_XSETBV 55 +#define EXIT_REASON_INVPCID 58 /* * Interruption-information format |