Volume 3A System Programming Guide_ Part 1 (794103), страница 15
Текст из файла (страница 15)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-27VM-ENTRY FAILURES DURING OR AFTER LOADING GUEST STATE . . . . . . . . . . . . . . . . . . . 1-28MACHINE CHECKS DURING VM ENTRY . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 1-29CHAPTER 23VM EXITS23.123.223.2.123.2.223.2.323.2.423.323.3.1ARCHITECTURAL STATE BEFORE A VM EXIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1RECORDING VM-EXIT INFORMATION AND UPDATING CONTROLS . . . . . . . . . .
. . . . . . . . . . . 1-5Basic VM-Exit Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5Information for VM Exits Due to Vectored Events. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 1-11Information for VM Exits During Event Delivery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12Information for VM Exits Due to Instruction Execution . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1-14SAVING GUEST STATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18Saving Control Registers, Debug Registers, and MSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18xxii Vol. 3ACONTENTSPAGE23.3.223.3.323.3.423.423.523.5.123.5.223.5.323.5.423.5.523.5.623.623.723.8Saving Segment Registers and Descriptor-Table Registers. . . . .
. . . . . . . . . . . . . . . . . . .1-19Saving RIP, RSP, and RFLAGS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-19Saving Non-Register State . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-22SAVING MSRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23LOADING HOST STATE . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24Loading Host Control Registers, Debug Registers, MSRs . . . . . . . . . . . . . . . . . . . . . . . . . .1-24Loading Host Segment and Descriptor-Table Registers . . . . . . . . .
. . . . . . . . . . . . . . . . . .1-25Loading Host RIP, RSP, and RFLAGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-27Checking and Loading Host Page-Directory Pointers . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .1-27Updating Non-Register State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-28Clearing Address-Range Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .1-28LOADING MSRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-28VMX ABORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 1-29MACHINE CHECK DURING VM EXIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30CHAPTER 24SYSTEM MANAGEMENT24.124.1.124.224.3SYSTEM MANAGEMENT MODE OVERVIEW. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 1-1System Management Mode and VMX Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2SYSTEM MANAGEMENT INTERRUPT (SMI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3SWITCHING BETWEEN SMM AND THE OTHERPROCESSOR OPERATING MODES . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-324.3.1Entering SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 1-324.3.2Exiting From SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-424.4SMRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 1-524.4.1SMRAM State Save Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-624.4.1.1SMRAM State Save Map and Intel 64 Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1-824.4.2SMRAM Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1124.5SMI HANDLER EXECUTION ENVIRONMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1-1224.6EXCEPTIONS AND INTERRUPTS WITHIN SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1324.7MANAGING SYNCHRONOUS AND ASYNCHRONOUSSYSTEM MANAGEMENT INTERRUPTS . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1524.7.1I/O State Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1524.8NMI HANDLING WHILE IN SMM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 1-1624.9SAVING THE X87 FPU STATE WHILE IN SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1724.10 SMM REVISION IDENTIFIER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1824.11 AUTO HALT RESTART . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1824.11.1Executing the HLT Instruction in SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .1-1924.12 SMBASE RELOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2024.12.1Relocating SMRAM to an Address Above 1 MByte . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .1-2024.13 I/O INSTRUCTION RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2124.13.1Back-to-Back SMI Interrupts When I/O Instruction Restart Is Being Used . . . . . . . . . . .1-2224.14 SMM MULTIPLE-PROCESSOR CONSIDERATIONS . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 1-2224.15 DEFAULT TREATMENT OF SMIS AND SMM WITH VMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2324.15.1Default Treatment of SMI Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2324.15.2Default Treatment of RSM . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2424.15.3Protection of CR4.VMXE in SMM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2524.16 DUAL-MONITOR TREATMENT OF SMIs AND SMM . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2524.16.1Dual-Monitor Treatment Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2524.16.2SMM VM Exits . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2624.16.2.1Architectural State Before a VM Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-26Vol. 3A xxiiiCONTENTSPAGE24.16.2.224.16.2.324.16.2.424.16.2.524.16.324.16.424.16.4.124.16.4.224.16.4.324.16.4.424.16.4.524.16.4.624.16.4.724.16.4.824.16.524.16.624.16.6.124.16.6.224.16.6.324.16.6.424.16.6.524.16.7Updating the Current-VMCS and Executive-VMCS Pointers . . . . . . .
. . . . . . . . . . . . . 1-26Recording VM-Exit Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-27Saving Guest State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 1-28Updating Non-Register State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-28Operation of an SMM Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 1-28VM Entries that Return from SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-29Checks on the Executive-VMCS Pointer Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-29Checks on VM-Execution Control Fields. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30Checks on Guest Non-Register State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30Loading Guest State . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30Updating the Current-VMCS and SMM-Transfer VMCS Pointers . . . . . . . . . . . . . . . . 1-31VM Exits Induced by VM Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . .