Volume 3A System Programming Guide_ Part 1 (794103), страница 14
Текст из файла (страница 14)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-17VM-ENTRY CONTROL FIELDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18VM-Entry Controls . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-18VM-Entry Controls for MSRs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-19VM-Entry Controls for Event Injection . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-19VM-EXIT INFORMATION FIELDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20Basic VM-Exit Information. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-20Information for VM Exits Due to Vectored Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-21Information for VM Exits That Occur During Event Delivery . . . . . . . . . . . . . . . . . . . . . . .1-22Information for VM Exits Due to Instruction Execution. . . . .
. . . . . . . . . . . . . . . . . . . . . . .1-23VM-Instruction Error Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-24SOFTWARE ACCESS TO THE VMCS AND RELATED STRUCTURES . . . . . . . . . . . .
. . . . . . . 1-24Software Access to the Virtual-Machine Control Structure . . . . . . . . . . . . . . . . . . . . . . . .1-24VMREAD, VMWRITE, and Encodings of VMCS Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-25Software Access to Related Structures . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-28VMXON Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-28USING VMCLEAR TO INITIALIZE A VMCS REGION. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-29CHAPTER 21VMX NON-ROOT OPERATION21.121.1.121.1.221.1.321.221.2.121.2.1.121.2.1.221.2.1.321.2.221.2.321.321.421.521.5.121.5.221.5.321.5.3.121.5.3.221.5.3.321.621.6.121.6.2INSTRUCTIONS THAT CAUSE VM EXITS . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1Relative Priority of Faults and VM Exits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1Instructions That Cause VM Exits Unconditionally . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2Instructions That Cause VM Exits Conditionally. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2APIC-ACCESS VM EXITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 1-5Linear Accesses to the APIC-Access Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5Linear Accesses That Cause APIC-Access VM Exits . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Priority of APIC-Access VM Exits Caused by Linear Accesses . . . . . . . . . . . . . . . . . . . . 1-6Instructions That May Cause Page Faults Without Accessing Memory . . . . . . . . . . . 1-7Physical Accesses to the APIC-Access Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 1-7VTPR Accesses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8OTHER CAUSES OF VM EXITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 1-8CHANGES TO INSTRUCTION BEHAVIOR IN VMX NON-ROOT OPERATION . . . . . . . . . . . . . 1-10APIC ACCESSES THAT DO NOT CAUSE VM EXITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14Linear Accesses to the APIC-Access Page Using Large-Page Translations . . . . . . . . .
.1-14Physical Accesses to the APIC-Access Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-14VTPR Accesses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-14Treatment of Individual VTPR Accesses . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-15Operations with Multiple Accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-16TPR-Shadow Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .1-17OTHER CHANGES IN VMX NON-ROOT OPERATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18Event Blocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .1-18Treatment of Task Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-18Vol. 3A xxiCONTENTSPAGECHAPTER 22VM ENTRIES22.122.222.2.122.2.1.122.2.1.222.2.1.322.2.222.2.322.2.422.322.3.122.3.1.122.3.1.222.3.1.322.3.1.422.3.1.522.3.1.622.3.222.3.2.122.3.2.222.3.2.322.3.2.422.3.322.422.522.5.122.5.222.622.6.122.6.222.6.322.6.422.6.522.6.622.6.722.722.8BASIC VM-ENTRY CHECKS . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2CHECKS ON VMX CONTROLS AND HOST-STATE AREA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3Checks on VMX Controls. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3VM-Execution Control Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3VM-Exit Control Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 1-5VM-Entry Control Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6Checks on Host Control Registers and MSRs . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7Checks on Host Segment and Descriptor-Table Registers. . . . . . . . . . . . . . . . . . . . . . . . . . 1-7Checks Related to Address-Space Size . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 1-8CHECKING AND LOADING GUEST STATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8Checks on the Guest State Area . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 1-9Checks on Guest Control Registers, Debug Registers, and MSRs . . . . . . . . . . . . . . . . 1-9Checks on Guest Segment Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9Checks on Guest Descriptor-Table Registers. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12Checks on Guest RIP and RFLAGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12Checks on Guest Non-Register State . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 1-13Checks on Guest Page-Directory Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15Loading Guest State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16Loading Guest Control Registers, Debug Registers, and MSRs. . . . . . . . . . . . . . . . . . 1-16Loading Guest Segment Registers and Descriptor-Table Registers . .
. . . . . . . . . . . 1-17Loading Guest RIP, RSP, and RFLAGS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18Loading Page-Directory Pointers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19Clearing Address-Range Monitoring .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19LOADING MSRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19EVENT INJECTION . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20Details of Event Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20VM Exits During Event Injection. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22SPECIAL FEATURES OF VM ENTRY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23Interruptibility State . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23Activity State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24Delivery of Pending Debug Exceptions after VM Entry . .
. . . . . . . . . . . . . . . . . . . . . . . . . 1-25Interrupt-Window Exiting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26NMI-Window Exiting. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26VM Exits Induced by the TPR Shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-27VM Entries and Advanced Debugging Features . .