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

Table Of Contents
Vol. 3 23-1
CHAPTER 23
VM EXITS
VM exits occur in response to certain instructions and events in VMX non-root opera-
tion. Section 21.1 through Section 21.3 detail the causes of VM exits. VM exits
perform the following operation:
1. Information about the cause of the VM exit is recorded in the VM-exit information
fields and VM-entry control fields are modified as described in Section 23.2.
2. Processor state is saved in the guest-state area (Section 23.3).
3. MSRs may be saved in the VM-exit MSR-store area (Section 23.4).
4. The following may be performed in parallel and in any order (Section 23.5):
Processor state is loaded based in part on the host-state area and some
VM-exit controls. This step is not performed for SMM VM exits that activate
the dual-monitor treatment of SMIs and SMM. See Section 25.15.6 for
information on how processor state is loaded by such VM exits.
Address-range monitoring is cleared.
5. MSRs may be loaded from the VM-exit MSR-load area (Section 23.6). This step is
not performed for SMM VM exits that activate the dual-monitor treatment of
SMIs and SMM.
VM exits are not logged with last-branch records, do not produce branch-trace
messages, and do not update the branch-trace store.
Section 23.1 clarifies the nature of the architectural state before a VM exit begins.
The steps described above are detailed in Section 23.2 through Section 23.6.
Section 25.15 describes the dual-monitor treatment of system-management inter-
rupts (SMIs) and system-management mode (SMM). Under this treatment, ordinary
transitions to SMM are replaced by VM exits to a separate SMM monitor. Called SMM
VM exits, these are caused by the arrival of an SMI or the execution of VMCALL in
VMX root operation. SMM VM exits differ from other VM exits in ways that are
detailed in Section 25.15.2.
23.1 ARCHITECTURAL STATE BEFORE A VM EXIT
This section describes the architectural state that exists before a VM exit, especially
for VM exits caused by events that would normally be delivered through the IDT.
Note the following:
An exception causes a VM exit directly if the bit corresponding to that exception
is set in the exception bitmap. A non-maskable interrupt (NMI) causes a VM exit
directly if the “NMI exiting” VM-execution control is 1. An external interrupt