summaryrefslogtreecommitdiffstats
path: root/sys/amd64/vmm/intel/vmx_controls.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2014-05-17 19:11:08 +0000
committerjhb <jhb@FreeBSD.org>2014-05-17 19:11:08 +0000
commitbbf655f9b49cc39db4559ede5c58d302ff8f3de2 (patch)
treef6cf26193250fdea84a6946390d9759716c70b5c /sys/amd64/vmm/intel/vmx_controls.h
parent7e7928763170f8b10771c099cf46224daaf67bca (diff)
downloadFreeBSD-src-bbf655f9b49cc39db4559ede5c58d302ff8f3de2.zip
FreeBSD-src-bbf655f9b49cc39db4559ede5c58d302ff8f3de2.tar.gz
MFC 259641,259863,259924,259937,259961,259978,260380,260383,260410,260466,
260531,260532,260550,260619,261170,261453,261621,263280,263290,264516: Add support for local APIC hardware-assist. - Restructure vlapic access and register handling to support hardware-assist for the local APIC. - Use the 'Virtual Interrupt Delivery' and 'Posted Interrupt Processing' feature of Intel VT-x if supported by hardware. - Add an API to rendezvous all active vcpus in a virtual machine and use it to support level triggered interrupts with VT-x 'Virtual Interrupt Delivery'. - Use a cheaper IPI handler than IPI_AST for nested page table shootdowns and avoid doing unnecessary nested TLB invalidations. Reviewed by: neel
Diffstat (limited to 'sys/amd64/vmm/intel/vmx_controls.h')
-rw-r--r--sys/amd64/vmm/intel/vmx_controls.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/sys/amd64/vmm/intel/vmx_controls.h b/sys/amd64/vmm/intel/vmx_controls.h
index 3cd2eff..2b117ae 100644
--- a/sys/amd64/vmm/intel/vmx_controls.h
+++ b/sys/amd64/vmm/intel/vmx_controls.h
@@ -34,6 +34,7 @@
#define PINBASED_NMI_EXITING (1 << 3)
#define PINBASED_VIRTUAL_NMI (1 << 5)
#define PINBASED_PREMPTION_TIMER (1 << 6)
+#define PINBASED_POSTED_INTERRUPT (1 << 7)
/* Primary Processor-Based VM-Execution Controls */
#define PROCBASED_INT_WINDOW_EXITING (1 << 2)
@@ -59,16 +60,18 @@
#define PROCBASED_SECONDARY_CONTROLS (1U << 31)
/* Secondary Processor-Based VM-Execution Controls */
-#define PROCBASED2_VIRTUALIZE_APIC (1 << 0)
-#define PROCBASED2_ENABLE_EPT (1 << 1)
-#define PROCBASED2_DESC_TABLE_EXITING (1 << 2)
-#define PROCBASED2_ENABLE_RDTSCP (1 << 3)
-#define PROCBASED2_VIRTUALIZE_X2APIC (1 << 4)
-#define PROCBASED2_ENABLE_VPID (1 << 5)
-#define PROCBASED2_WBINVD_EXITING (1 << 6)
-#define PROCBASED2_UNRESTRICTED_GUEST (1 << 7)
-#define PROCBASED2_PAUSE_LOOP_EXITING (1 << 10)
-#define PROCBASED2_ENABLE_INVPCID (1 << 12)
+#define PROCBASED2_VIRTUALIZE_APIC_ACCESSES (1 << 0)
+#define PROCBASED2_ENABLE_EPT (1 << 1)
+#define PROCBASED2_DESC_TABLE_EXITING (1 << 2)
+#define PROCBASED2_ENABLE_RDTSCP (1 << 3)
+#define PROCBASED2_VIRTUALIZE_X2APIC_MODE (1 << 4)
+#define PROCBASED2_ENABLE_VPID (1 << 5)
+#define PROCBASED2_WBINVD_EXITING (1 << 6)
+#define PROCBASED2_UNRESTRICTED_GUEST (1 << 7)
+#define PROCBASED2_APIC_REGISTER_VIRTUALIZATION (1 << 8)
+#define PROCBASED2_VIRTUAL_INTERRUPT_DELIVERY (1 << 9)
+#define PROCBASED2_PAUSE_LOOP_EXITING (1 << 10)
+#define PROCBASED2_ENABLE_INVPCID (1 << 12)
/* VM Exit Controls */
#define VM_EXIT_SAVE_DEBUG_CONTROLS (1 << 2)
OpenPOWER on IntegriCloud