Download virtual-machine extensions (VMX)

Transcript
VM EXITS
erly configured). In such cases, the VMX-abort indicator could correspond to any one
of those reasons.
A logical processor never reads the VMX-abort indicator in a VMCS region and writes
it only with one of the non-zero values mentioned above. The VMX-abort indicator
allows software on one logical processor to diagnose the VMX-abort on another. For
this reason, it is recommended that software running in VMX root operation zero the
VMX-abort indicator in the VMCS region of any VMCS that it uses.
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); startup IPIs (SIPIs); and system-management interrupts (SMIs).
24.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.
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 GETSEC[SENTER]. See Chapter 6, “Safer Mode Extensions Reference,” in Intel® 64 and IA-32 Architectures 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 GETSEC[SENTER]. See Chapter 6, “Safer Mode Extensions Reference,” in Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2B.
24-40 Vol. 3B