Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
20-10 Vol. 3
VIRTUAL-MACHINE CONTROL STRUCTURES
20.6.1 Pin-Based VM-Execution Controls
The pin-based VM-execution controls constitute a 32-bit vector that governs the
handling of asynchronous events (for example: interrupts).
1
Table 20-5 lists the
controls supported. See Chapter 21 for how these controls affect processor behavior
in VMX non-root operation.
All other bits in this field are reserved, some to 0 and some to 1. Software should
consult the VMX capability MSRs IA32_VMX_PINBASED_CTLS and
IA32_VMX_TRUE_PINBASED_CTLS (see Appendix G.3.1) to determine how to set
reserved bits. Failure to set reserved bits properly causes subsequent VM entries to
fail (see Section 22.2).
Note that the first processors to support the virtual-machine extensions supported
only the 1-settings of bits 1, 2, and 4. The VMX capability MSR
IA32_VMX_PINBASED_CTLS will always report that these bits must be 1. Logical
processors that support the 0-settings of any of these bits will support the VMX capa-
bility MSR IA32_VMX_TRUE_PINBASED_CTLS MSR, and software should consult this
MSR to discover support for the 0-settings of these bits. Software that is not aware of
the functionality of any one of these bits should set that bit to 1.
1. Some asynchronous events cause VM exits regardless of the settings of the pin-based VM-exe-
cution controls (see Section 21.3).
Table 20-5. Definitions of Pin-Based VM-Execution Controls
Bit Position(s) Name Description
0External-interrupt
exiting
If this control is 1, external interrupts cause VM exits.
Otherwise, they are delivered normally through the guest
interrupt-descriptor table (IDT). If this control is 1, the value
of RFLAGS.IF does not affect interrupt blocking.
3 NMI exiting If this control is 1, non-maskable interrupts (NMIs) cause
VM exits. Otherwise, they are delivered normally using
descriptor 2 of the IDT. This control also determines
interactions between IRET and blocking by NMI (see Section
21.4).
5 Virtual NMIs If this control is 1, NMIs are never blocked and the “blocking
by NMI” bit (bit 3) in the interruptibility-state field indicates
“virtual-NMI blocking” (see Table 20-3). This control also
interacts with the “NMI-window exiting” VM-execution
control (see Section 20.6.2).
This control can be set only if the “NMI exiting” VM-execution
control (above) is 1.
6Activate VMX-
preemption timer
If this control is 1, the VMX-preemption timer counts down in
VMX non-root operation; see Section 21.7.1. A VM exit occurs
when the timer counts down to zero; see Section 21.3.