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

Table Of Contents
Vol. 3 23-37
VM EXITS
There are no pending debug exceptions after a VM exit.
Section 24.3 describes how the VMX architecture controls how a logical processor
manages information in the TLBs and paging-structure caches. The following items
detail how VM exits invalidate cached mappings:
If the “enable VPID” VM-execution control is 0, the logical processor invalidates
VPID-tagged mappings and dual-tagged mappings associated with VPID 0000H;
dual-tagged mappings for VPID 0000H are invalidated for all EPTPs.
VM exits are not required to invalidate any EPTP-tagged mappings, nor are they
required to invalidate any VPID-tagged mappings or dual-tagged mappings if the
“enable VPID” VM-execution control is 1.
23.5.6 Clearing Address-Range Monitoring
The Intel 64 and IA-32 architectures allow software to monitor a specified address
range using the MONITOR and MWAIT instructions. See Section 7.11.4 in the Intel®
64 and IA-32 Architectures Software Developer’s Manual, Volume 3A. VM exits clear
any address-range monitoring that may be in effect.
23.6 LOADING MSRS
VM exits may load MSRs from the VM-exit MSR-load area (see Section 20.7.2).
Specifically each entry in that area (up to the number specified in the VM-exit MSR-
load count) is processed in order by loading the MSR indexed by bits 31:0 with the
contents of bits 127:64 as they would be written by WRMSR.
Processing of an entry fails in any of the following cases:
The value of bits 31:0 is either C0000100H (the IA32_FS_BASE MSR) or
C0000101H (the IA32_GS_BASE MSR).
The value of bits 31:8 is 000008H, meaning that the indexed MSR is one that
allows access to an APIC register when the local APIC is in x2APIC mode.
The value of bits 31:0 indicates an MSR that can be read only in system-
management mode (SMM) and the VM exit will not end in SMM.
(IA32_SMM_MONITOR_CTL is an MSR that can be written only in SMM.)
The value of bits 31:0 indicates an MSR that cannot be loaded on VM exits for
model-specific reasons. A processor may prevent loading of certain MSRs even if
they can normally be written by WRMSR. Such model-specific behavior is
documented in Appendix B.
Bits 63:32 are not all 0.
An attempt to write bits 127:64 to the MSR indexed by bits 31:0 of the entry
would cause a general-protection exception if executed via WRMSR with
CPL = 0.
1
If processing fails for any entry, a VMX abort occurs. See Section 23.7.