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

Table Of Contents
Vol. 3 20-23
VIRTUAL-MACHINE CONTROL STRUCTURES
All other bits in this field are reserved, some to 0 and some to 1. Software should
consult the VMX capability MSRs IA32_VMX_ENTRY_CTLS and
IA32_VMX_TRUE_ENTRY_CTLS (see Appendix G.5) to determine how it should set
the 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 0–8 and 12. The VMX capability MSR
IA32_VMX_ENTRY_CTLS always reports that these bits must be 1. Logical processors
that support the 0-settings of any of these bits will support the VMX capability MSR
IA32_VMX_TRUE_ENTRY_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.
20.8.2 VM-Entry Controls for MSRs
A VMM may specify a list of MSRs to be loaded on VM entries. The following VM-entry
control fields manage this functionality:
VM-entry MSR-load count (32 bits). This field contains the number of MSRs to
be loaded on VM entry. It is recommended that this count not exceed 512 bytes.
Otherwise, unpredictable processor behavior (including a machine check) may
result during VM entry.
1
VM-entry MSR-load address (64 bits). This field contains the physical address
of the VM-entry MSR-load area. The area is a table of entries, 16 bytes per entry,
where the number of entries is given by the VM-entry MSR-load count. The
format of entries is described in Table 20-10. If the VM-entry MSR-load count is
not zero, the address must be 16-byte aligned.
See Section 22.4 for details of how this area is used on VM entries.
20.8.3 VM-Entry Controls for Event Injection
VM entry can be configured to conclude by delivering an event through the IDT (after
all guest state and MSRs have been loaded). This process is called event injection
and is controlled by the following three VM-entry control fields:
VM-entry interruption-information field (32 bits). This field provides details
about the event to be injected. Table 20-12 describes the field.
1. Future implementations may allow more MSRs to be loaded reliably. Software should consult the
VMX capability MSR IA32_VMX_MISC to determine the number supported (see Appendix G.6).
Table 20-12. Format of the VM-Entry Interruption-Information Field
Bit
Position(s)
Content
7:0 Vector of interrupt or exception