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

Table Of Contents
Vol. 3 24-13
SUPPORT FOR ADDRESS TRANSLATION
If the entry does references another guest paging structure, an entry
from that structure is accessed; step 1 is executed for that other
entry.
Otherwise, the entry is used to produce the ultimate guest-physical
address (the translation of the original linear address); step 2 is
executed.
2. Once the ultimate guest-physical address is determined, the privileges
determined by the guest paging-structure entries are evaluated:
a. If the access to the linear address is not allowed by these privileges (e.g., it
was a write to a read-only page), a page fault occurs.
b. If the access to the linear address is allowed by these privileges, an attempt
is made to access memory at the ultimate guest-physical address:
i) If the access fails because of an EPT misconfiguration or an EPT violation
(see above), an EPT-induced VM exit occurs.
ii) If the access does not cause an EPT-induced VM exit, memory is accessed
using the ultimate physical address (the translation, using EPT, of the
ultimate guest-physical address).
24.2.5 EPT and Memory Typing
This section specifies how a logical processor determines the memory type use for a
memory access while EPT is in use. (See Chapter 10, “Memory Cache Control” of
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A for
details of memory typing in the Intel 64 architecture.) Section 24.2.5.1 explains how
the memory type is determined for accesses to the EPT paging structures. Section
24.2.5.2 explains how the memory type is determined for an access using a guest-
physical address that is translated using EPT.
24.2.5.1 Memory Type Used for Accessing EPT Paging Structures
This section explains how the memory type is determined for accesses to the EPT
paging structures. The determination is based first on the value of bit 30 (cache
disable—CD) in control register CR0:
If CR0.CD = 0, the memory type used for any such reference is the EPT paging-
structure memory type, which is specified in bits 2:0 of the extended-page-table
pointer (EPTP), a VM-execution control field (see Section 20.6.11). A value of 0
indicates the uncacheable type (UC), while a value of 6 indicates the write-back
type (WB). Other values are reserved.
If CR0.CD = 1, the memory type used for any such reference is uncacheable
(UC).
Note that the MTRRs have no effect on the memory type used for an access to an EPT
paging structure.