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

Table Of Contents
Vol. 3 21-27
VMX NON-ROOT OPERATION
MTF VM exits. An MTF VM exit may occur on an instruction boundary in VMX non-
root operation as follows:
If the “monitor trap flag” VM-execution control is 1 and VM entry is injecting a
vectored event (see Section 22.5.1), an MTF VM exit is pending on the instruction
boundary before the first instruction following the VM entry.
If VM entry is injecting a pending MTF VM exit (see Section 22.5.2), an MTF
VM exit is pending on the instruction boundary before the first instruction
following the VM entry. This is the case even if the “monitor trap flag” VM-
execution control is 0.
If the “monitor trap flag” VM-execution control is 1, VM entry is not injecting an
event, and a pending event (e.g., debug exception or interrupt) is delivered
before an instruction can execute, an MTF VM exit is pending on the instruction
boundary following delivery of the event (or any nested exception).
Suppose that the “monitor trap flag” VM-execution control is 1, VM entry is not
injecting an event, and the first instruction following VM entry is a REP-prefixed
string instruction:
If the first iteration of the instruction causes a fault, an MTF VM exit is
pending on the instruction boundary following delivery of the fault (or any
nested exception).
If the first iteration of the instruction does not cause a fault, an MTF VM exit
is pending on the instruction boundary after that iteration.
Suppose that the “monitor trap flag” VM-execution control is 1, VM entry is not
injecting an event, and the first instruction following VM entry is not a REP-
prefixed string instruction:
If the instruction causes a fault, an MTF VM exit is pending on the instruction
boundary following delivery of the fault (or any nested exception).
1
If the instruction does not cause a fault, an MTF VM exit is pending on the
instruction boundary following execution of that instruction. If the instruction
is INT3 or INTO, this boundary follows delivery of any software exception. If
the instruction is INT n, this boundary follows delivery of a software interrupt.
If the instruction is HLT, the MTF VM exit will be from the HLT activity state.
No MTF VM exit occurs if another VM exit occurs before reaching the instruction
boundary on which an MTF VM exit would be pending (e.g., due to an exception or
triple fault).
An MTF VM exit occurs on the instruction boundary on which it is pending unless a
higher priority event takes precedence or the MTF VM exit is blocked due to the
activity state:
1. This item includes the cases of an invalid opcode exception—#UD— generated by the UD2
instruction and a BOUND-range exceeded exception—#BR—generated by the BOUND instruc-
tion.