summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/processor-flags.h
diff options
context:
space:
mode:
authorMao, Junjie <junjie.mao@intel.com>2012-07-02 03:18:48 +0200
committerAvi Kivity <avi@redhat.com>2012-07-12 12:07:34 +0200
commitad756a1603c5fac207758faaac7f01c34c9d0b7b (patch)
tree0b01513f1e3434362ab9faf8394cbd158b31386d /arch/x86/include/asm/processor-flags.h
parentKVM: Add x86_hyper_kvm to complete detect_hypervisor_platform check (diff)
downloadlinux-ad756a1603c5fac207758faaac7f01c34c9d0b7b.tar.xz
linux-ad756a1603c5fac207758faaac7f01c34c9d0b7b.zip
KVM: VMX: Implement PCID/INVPCID for guests with EPT
This patch handles PCID/INVPCID for guests. Process-context identifiers (PCIDs) are a facility by which a logical processor may cache information for multiple linear-address spaces so that the processor may retain cached information when software switches to a different linear address space. Refer to section 4.10.1 in IA32 Intel Software Developer's Manual Volume 3A for details. For guests with EPT, the PCID feature is enabled and INVPCID behaves as running natively. For guests without EPT, the PCID feature is disabled and INVPCID triggers #UD. Signed-off-by: Junjie Mao <junjie.mao@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/processor-flags.h')
-rw-r--r--arch/x86/include/asm/processor-flags.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/processor-flags.h b/arch/x86/include/asm/processor-flags.h
index f8ab3eaad128..aea1d1d848c7 100644
--- a/arch/x86/include/asm/processor-flags.h
+++ b/arch/x86/include/asm/processor-flags.h
@@ -44,6 +44,7 @@
*/
#define X86_CR3_PWT 0x00000008 /* Page Write Through */
#define X86_CR3_PCD 0x00000010 /* Page Cache Disable */
+#define X86_CR3_PCID_MASK 0x00000fff /* PCID Mask */
/*
* Intel CPU features in CR4
@@ -61,6 +62,7 @@
#define X86_CR4_OSXMMEXCPT 0x00000400 /* enable unmasked SSE exceptions */
#define X86_CR4_VMXE 0x00002000 /* enable VMX virtualization */
#define X86_CR4_RDWRGSFS 0x00010000 /* enable RDWRGSFS support */
+#define X86_CR4_PCIDE 0x00020000 /* enable PCID support */
#define X86_CR4_OSXSAVE 0x00040000 /* enable xsave and xrestore */
#define X86_CR4_SMEP 0x00100000 /* enable SMEP support */