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

Table Of Contents
Vol. 3 24-19
SUPPORT FOR ADDRESS TRANSLATION
All-context. If the INVEPT type is 2, the logical processor invalidates EPTP-
tagged mappings and dual-tagged mappings associated with all EPTPs (and,
for dual-tagged mappings, for all VPIDs).
See Chapter 5 of the Intel® 64 and IA-32 Architectures Software Developer’s
Manual, Volume 2B for details of the INVEPT instruction. See Section 24.3.3.4 for
guidelines regarding use of this instruction.
A power-up or a reset invalidates all VPID-tagged mappings, EPTP-tagged
mappings, and dual-tagged mappings.
24.3.3.2 Operations that Need Not Invalidate Cached Mappings
The following items detail cases of operations that are not required to invalidate
certain cached mappings:
Operations that architecturally invalidate entries in the TLBs or paging-structure
caches independent of VMX operation are not required to invalidate any EPTP-
tagged mappings.
The INVVPID instruction is not required to invalidate any EPTP-tagged mappings.
The INVEPT instruction is not required to invalidate any VPID-tagged mappings.
VMX transitions are not required to invalidate any EPTP-tagged mappings. If the
“enable VPID” VM-execution control is 1, VMX transitions are not required to
invalidate any VPID-tagged mappings or dual-tagged mappings.
The VMXOFF and VMXON instructions are not required to invalidate any VPID-
tagged mappings, EPTP-tagged mappings, or dual-tagged mappings.
Note that a logical processor may invalidate any cached mappings at any time. For
this reason, the operations identified above may invalidate the indicated mappings
despite the fact that doing so is not required.
24.3.3.3 Guidelines for Use of the INVVPID Instruction
The need for VMM software to use the INVVPID instruction depends on how that soft-
ware is virtualizing memory (e.g., see Section 27.3, “Memory Virtualization”). If the
VMM is virtualizing the guest paging structures, certain operations that would invali-
date the TLBs and the paging-structure caches (e.g., the INVLPG instruction) may be
configured to cause VM exits. If VMM software is emulating these operations, it may
be necessary to use the INVVPID instruction to ensure that the logical processor’s
TLBs and the paging-structure caches are appropriately invalidated. (If EPT is being
used, many uses of the INVVPID instruction may not be required.)
Requirements of when software should use the INVVPID instruction depend on the
specific algorithm being used for page-table virtualization. The following items
provide guidelines for software developers:
Emulation of the INVLPG instruction may require execution of the INVVPID
instruction as follows: