儲存庫 vbox 的更動 49879
- 時間撮記:
- 2013-12-11 下午06:10:03 (11 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r49876 r49879 138 138 /** @name VMCB Clean Bits. 139 139 * 140 * These flags are used for VMCB-state caching. A set VMCB Clean Bit indicates140 * These flags are used for VMCB-state caching. A set VMCB Clean bit indicates 141 141 * AMD-V doesn't need to reload the corresponding value(s) from the VMCB in 142 142 * memory. … … 1054 1054 /** 1055 1055 * Adds an exception to the intercept exception bitmap in the VMCB and updates 1056 * the corresponding VMCB Clean Bit.1056 * the corresponding VMCB Clean bit. 1057 1057 * 1058 1058 * @param pVmcb Pointer to the VM control block. … … 1071 1071 /** 1072 1072 * Removes an exception from the intercept-exception bitmap in the VMCB and 1073 * updates the corresponding VMCB Clean Bit.1073 * updates the corresponding VMCB Clean bit. 1074 1074 * 1075 1075 * @param pVmcb Pointer to the VM control block. … … 1203 1203 enmShwPagingMode = PGMGetHostMode(pVM); 1204 1204 1205 pVmcb->ctrl.u64NestedPagingCR3 1205 pVmcb->ctrl.u64NestedPagingCR3 = PGMGetNestedCR3(pVCpu, enmShwPagingMode); 1206 1206 pVmcb->ctrl.u64VmcbCleanBits &= ~HMSVM_VMCB_CLEAN_NP; 1207 1207 Assert(pVmcb->ctrl.u64NestedPagingCR3); … … 1286 1286 HMSVM_LOAD_SEG_REG(GS, gs); 1287 1287 1288 pVmcb->guest.u8CPL = pCtx->ss.Attr.n.u2Dpl; 1288 1289 pVmcb->ctrl.u64VmcbCleanBits &= ~HMSVM_VMCB_CLEAN_SEG; 1289 1290 HMCPU_CF_CLEAR(pVCpu, HM_CHANGED_GUEST_SEGMENT_REGS); … … 1784 1785 pVmcb->guest.u64RSP = pCtx->rsp; 1785 1786 pVmcb->guest.u64RFlags = pCtx->eflags.u32; 1786 pVmcb->guest.u8CPL = pCtx->ss.Attr.n.u2Dpl;1787 1787 pVmcb->guest.u64RAX = pCtx->rax; 1788 1788 … … 2836 2836 /* 2837 2837 * Re-enable nested paging (automatically disabled on every VM-exit). See AMD spec. 15.25.3 "Enabling Nested Paging". 2838 * We avoid changing the corresponding VMCB Clean Bit as we're not changing it to a different value since the previous run.2838 * We avoid changing the corresponding VMCB Clean bit as we're not changing it to a different value since the previous run. 2839 2839 */ 2840 2840 /** @todo The above assumption could be wrong. It's not documented what 2841 * should be done wrt to the VMCB Clean Bit, but we'll find out the2841 * should be done wrt to the VMCB Clean bit, but we'll find out the 2842 2842 * hard way. */ 2843 2843 PSVMVMCB pVmcb = (PSVMVMCB)pVCpu->hm.s.svm.pvVmcb; … … 2949 2949 } 2950 2950 2951 /* If we've migrating CPUs, mark the VMCB clean bits as dirty. */2951 /* If we've migrating CPUs, mark the VMCB Clean bits as dirty. */ 2952 2952 if (HMR0GetCurrentCpu()->idCpu != pVCpu->hm.s.idLastCpu) 2953 2953 pVmcb->ctrl.u64VmcbCleanBits = 0; … … 3000 3000 hmR0SvmSetMsrPermission(pVCpu, MSR_K8_TSC_AUX, SVMMSREXIT_INTERCEPT_READ, SVMMSREXIT_INTERCEPT_WRITE); 3001 3001 3002 /* If VMCB Clean Bits isn't supported by the CPU, simply mark all state-bits as dirty, indicating (re)load-from-VMCB. */3002 /* If VMCB Clean bits isn't supported by the CPU, simply mark all state-bits as dirty, indicating (re)load-from-VMCB. */ 3003 3003 if (!(pVM->hm.s.svm.u32Features & AMD_CPUID_SVM_FEATURE_EDX_VMCB_CLEAN)) 3004 3004 pVmcb->ctrl.u64VmcbCleanBits = 0;
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器