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

Table Of Contents
25-32 Vol. 3
SYSTEM MANAGEMENT
25.15.4.5 Loading Guest State
VM entries that return from SMM load the SMBASE register from the SMBASE field.
VM entries that return from SMM invalidate VPID-tagged mappings and dual-tagged
mappings associated with all VPIDs (dual-tagged mappings are invalidated for all
EPTPs); see Section 24.3. (Note that ordinary VM entries are required to perform
such invalidation only for VPID 0000H and are not required to do even that if the
“enable VPID” VM-execution control is 1; see Section 22.3.2.5.)
25.15.4.6 VMX-Preemption Timer
A VM entry that returns from SMM activates the VMX-preemption timer only if the
executive-VMCS pointer field does not contain the VMXON pointer (the VM entry
enters VMX non-root operation) and the “activate VMX-preemption timer” VM-entry
control is 1 in the executive VMCS (the VMCS referenced by the executive-VMCS
pointer field). In this case, VM entry starts the VMX-preemption timer with the value
in the VMX-preemption timer-value field in the current VMCS.
25.15.4.7 Updating the Current-VMCS and SMM-Transfer VMCS Pointers
Successful VM entries (returning from SMM) load the SMM-transfer VMCS pointer
with the current-VMCS pointer. Following this, they load the current-VMCS pointer
from a field in the current VMCS:
If the executive-VMCS pointer field contains the VMXON pointer (the VM entry
remains in VMX root operation), the current-VMCS pointer is loaded from the
VMCS-link pointer field.
If the executive-VMCS pointer field does not contain the VMXON pointer (the
VM entry enters VMX non-root operation), the current-VMCS pointer is loaded
with the value of the executive-VMCS pointer field.
If the VM entry successfully enters VMX non-root operation, the VM-execution
controls in effect after the VM entry are those from the new current VMCS. This
includes any structures external to the VMCS referenced by VM-execution control
fields.
The updating of these VMCS pointers occurs before event injection. Event injection is
determined, however, by the VM-entry control fields in the VMCS that was current
when the VM entry commenced.
25.15.4.8 VM Exits Induced by VM Entry
Section 22.5.1.2 describes how the event-delivery process invoked by event injec-
tion may lead to a VM exit. Section 22.6.3 to Section 22.6.7 describe other situations
that may cause a VM exit to occur immediately after a VM entry.
Whether these VM exits occur is determined by the VM-execution control fields in the
current VMCS. For VM entries that return from SMM, they can occur only if the exec-