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

Table Of Contents
Vol. 3 23-11
VM EXITS
Such a VM exit that set bits 15:12 of the exit qualification to 0000b (data
read during instruction execution) or 0001b (data write during instruction
execution) set bit 12—which distinguishes data read from data write—to that
which would have been stored in bit 1—W/R—of the page-fault error code had
the access caused a page fault instead of an APIC-access VM exit. This
implies the following:
For an APIC-access VM exit caused by the CLFLUSH instruction, the
access type is “data read during instruction execution.
For an APIC-access VM exit caused by the ENTER instruction, the access
type is “data write during instruction execution.
For an APIC-access VM exit caused by the MASKMOVQ instruction or the
MASKMOVDQU instruction, the access type is “data write during
instruction execution.
For an APIC-access VM exit caused by the MONITOR instruction, the
access type is “data read during instruction execution.
Such a VM exit stores 1 for bit 31 for IDT-vectoring information field (see
Section 23.2.3) if and only if it sets bits 15:12 of the exit qualification to
0011b (linear access during event delivery) or 1010b (guest-physical access
during event delivery).
See Section 21.2.1.3 for further discussion of these instructions and APIC-
access VM exits.
For APIC-access VM exits resulting from physical accesses, the APIC-access
page (see Section 21.2.3), the exit qualification is undefined.
For an EPT violation, the exit qualification contains information about the
access causing the EPT violation and has the format given in Table 23-5.
1. The exit qualification is undefined if the access was part of the logging of a branch record or a
precise-event-based-sampling (PEBS) record to the DS save area. It is recommended that soft-
ware configure the paging structures so that no address in the DS save area translates to an
address on the APIC-access page.
Table 23-7. Exit Qualification for EPT Violations
Bit Position(s) Contents
0 Set if the access causing the EPT violation was a data read.
1 Set if the access causing the EPT violation was a data write.
2 Set if the access causing the EPT violation was an instruction fetch.