Changeset 45846 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Apr 30, 2013 4:48:09 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45845 r45846 6632 6632 if (!(pVCpu->hm.s.vmx.u32ProcCtls & VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_RDTSC_EXIT)) 6633 6633 { 6634 #ifndef VBOX_WITH_AUTO_MSR_LOAD_RESTORE 6635 /* Restore host's TSC_AUX. */ 6636 if (pVCpu->hm.s.vmx.u32ProcCtls2 & VMX_VMCS_CTRL_PROC_EXEC2_RDTSCP) 6637 ASMWrMsr(MSR_K8_TSC_AUX, pVCpu->hm.s.u64HostTscAux); 6638 #endif 6634 6639 /** @todo Find a way to fix hardcoding a guestimate. */ 6635 6640 TMCpuTickSetLastSeen(pVCpu, ASMReadTSC() … … 6640 6645 Assert(!(ASMGetFlags() & X86_EFL_IF)); 6641 6646 VMCPU_SET_STATE(pVCpu, VMCPUSTATE_STARTED_HM); 6642 6643 #ifndef VBOX_WITH_AUTO_MSR_LOAD_RESTORE6644 /*6645 * Save the current Host TSC_AUX and write the guest TSC_AUX to the host, so that6646 * RDTSCPs (that don't cause exits) reads the guest MSR. See @bugref{3324}.6647 */6648 if ( (pVCpu->hm.s.vmx.u32ProcCtls2 & VMX_VMCS_CTRL_PROC_EXEC2_RDTSCP)6649 && !(pVCpu->hm.s.vmx.u32ProcCtls & VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_RDTSC_EXIT))6650 {6651 pVCpu->hm.s.u64HostTscAux = ASMRdMsr(MSR_K8_TSC_AUX);6652 uint64_t u64HostTscAux = 0;6653 int rc2 = CPUMQueryGuestMsr(pVCpu, MSR_K8_TSC_AUX, &u64HostTscAux);6654 AssertRC(rc2);6655 ASMWrMsr(MSR_K8_TSC_AUX, u64HostTscAux);6656 }6657 #endif6658 6647 6659 6648 /* Restore the effects of TPR patching if any. */
Note:
See TracChangeset
for help on using the changeset viewer.