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

Table Of Contents
Vol. 3 25-29
SYSTEM MANAGEMENT
processors that support Intel 64 architecture, bits 63:32 are clear if the logical
processor was not in 64-bit mode before the VM exit.
I/O RCX, I/O RSI, I/O RDI, and I/O RIP. For an SMM VM exit due an SMI
that arrives immediately after the retirement of an I/O instruction, these fields
receive the values that were in RCX, RSI, RDI, and RIP, respectively, before the
I/O instruction executed. Thus, the value saved for I/O RIP addresses the I/O
instruction.
25.15.2.4 Saving Guest State
SMM VM exits save the contents of the SMBASE register into the corresponding field
in the guest-state area.
The value of the VMX-preemption timer is saved into the corresponding field in the
guest-state area if the “save VMX-preemption timer value” VM-exit control is 1. That
field becomes undefined if, in addition, either the SMM VM exit is from VMX root
operation or the SMM VM exit is from VMX non-root operation and the “activate VMX-
preemption timer” VM-execution control is 0.
25.15.2.5 Updating Non-Register State
SMM VM exits affect the non-register state of a logical processor as follows:
SMM VM exits cause non-maskable interrupts (NMIs) to be blocked; they may be
unblocked through execution of IRET or through a VM entry (depending on the
value loaded for the interruptibility state and the setting of the “virtual NMIs”
VM-execution control).
SMM VM exits cause SMIs to be blocked; they may be unblocked by a VM entry
that returns from SMM (see Section 25.15.4).
SMM VM exits invalidate VPID-tagged mappings and dual-tagged mappings associ-
ated with VPID 0000H (dual-tagged mappings for VPID 0000H are invalidated for all
EPTPs); see Section 24.3. (Note that ordinary VM exits are not required to perform
such invalidation if the “enable VPID” VM-execution control is 1; see Section 23.5.5.)
25.15.3 Operation of an SMM Monitor
Once invoked, an SMM monitor is in VMX root operation and can use VMX instructions
to configure VMCSs and to cause VM entries to virtual machines supported by those
structures. As noted in Section 25.15.1, the VMXOFF instruction cannot be used
under the dual-monitor treatment and thus cannot be used by an SMM monitor.
The RSM instruction also cannot be used under the dual-monitor treatment. As noted
in Section 21.1.3, it causes a VM exit if executed in SMM in VMX non-root operation.
If executed in VMX root operation, it causes an invalid-opcode exception. SMM
monitor uses VM entries to return from SMM (see Section 25.15.4).