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

Table Of Contents
Vol. 3 23-39
VM EXITS
After saving the VMX-abort indicator, operation of a logical processor experiencing a
VMX abort depends on whether the logical processor is in SMX operation:
1
If the logical processor is in SMX operation, an Intel
®
TXT shutdown condition
occurs. The error code used is 000DH, indicating “VMX abort.” See Intel
®
Trusted
Execution Technology Measured Launched Environment Programming Guide.
If the logical processor is outside SMX operation, it issues a special bus cycle (to
notify the chipset) and enters the VMX-abort shutdown state. RESET is the
only event that wakes a logical processor from the VMX-abort shutdown state.
The following events do not affect a logical processor in this state: machine
checks; INIT signals; external interrupts; non-maskable interrupts (NMIs); start-
up IPIs (SIPIs); and system-management interrupts (SMIs).
23.8 MACHINE CHECK DURING VM EXIT
If a machine check occurs during VM exit, one of the following occurs:
The machine check is handled normally:
If CR4.MCE = 1, a machine-check exception (#MC) delivered through the
guest IDT.
If CR4.MCE = 0, operation of the logical processor depends on whether the
logical processor is in SMX operation:
2
If the logical processor is in SMX operation, an Intel
®
TXT shutdown
condition occurs. The error code used is 000CH, indicating “unrecoverable
machine check condition.” See Intel
®
Trusted Execution Technology
Measured Launched Environment Programming Guide.
If the logical processor is outside SMX operation, it goes to the shutdown
state.
A VMX abort is generated (see Section 23.7). The logical processor blocks events
as done normally in VMX abort. The VMX abort indicator is 5, for “machine check
during VM exit.
1. A logical processor is in SMX operation if GETSEC[SEXIT] has not been executed since the last
execution of GETSEC[SENTER]. A logical processor is outside SMX operation if GETSEC[SENTER]
has not been executed or if GETSEC[SEXIT] was executed after the last execution of GET-
SEC[SENTER]. See Chapter 6, “Safer Mode Extensions Reference,” in Intel® 64 and IA-32 Archi-
tectures Software Developer’s Manual, Volume 2B.
2. A logical processor is in SMX operation if GETSEC[SEXIT] has not been executed since the last
execution of GETSEC[SENTER]. A logical processor is outside SMX operation if GETSEC[SENTER]
has not been executed or if GETSEC[SEXIT] was executed after the last execution of GET-
SEC[SENTER]. See Chapter 6, “Safer Mode Extensions Reference,” in Intel® 64 and IA-32 Archi-
tectures Software Developer’s Manual, Volume 2B.