- Timestamp:
- May 9, 2012 9:57:35 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r41213 r41223 139 139 140 140 /* 141 * Flush all VPIDs (in case we or anyother hypervisor have been using VPIDs) so that 142 * we can avoid an explicit flush while using new VPIDs. 141 * Flush all VPIDs (in case we or any other hypervisor have been using VPIDs) so that 142 * we can avoid an explicit flush while using new VPIDs. We would still need to flush 143 * each time while reusing a VPID after hitting the MaxASID limit once. 143 144 */ 144 145 if ( pVM … … 391 392 AssertReturn(pVM, VERR_INVALID_PARAMETER); 392 393 393 /* Initialize these always .*/394 /* Initialize these always, see hwaccmR3InitFinalizeR0().*/ 394 395 pVM->hwaccm.s.vmx.enmFlushEPT = VMX_FLUSH_EPT_NONE; 395 396 pVM->hwaccm.s.vmx.enmFlushVPID = VMX_FLUSH_VPID_NONE; … … 4567 4568 else 4568 4569 { 4570 AssertPtr(pVCpu); 4569 4571 Assert(pVCpu->hwaccm.s.uCurrentASID != 0); 4570 4572 descriptor[0] = pVCpu->hwaccm.s.uCurrentASID; … … 4572 4574 } 4573 4575 int rc = VMXR0InvVPID(enmFlush, &descriptor[0]); NOREF(rc); 4574 AssertMsg(rc == VINF_SUCCESS, ("VMXR0InvVPID %x %x %RGv failed with %d\n", enmFlush, pVCpu->hwaccm.s.uCurrentASID, GCPtr, rc)); 4576 AssertMsg(rc == VINF_SUCCESS, 4577 ("VMXR0InvVPID %x %x %RGv failed with %d\n", enmFlush, pVCpu ? pVCpu->hwaccm.s.uCurrentASID : 0, GCPtr, rc)); 4575 4578 } 4576 4579 } … … 4619 4622 /** 4620 4623 * Invalidates a guest page by physical address. Only relevant for EPT/VPID, 4621 * otherwise ther eis nothing really to invalidate.4624 * otherwise there is nothing really to invalidate. 4622 4625 * 4623 4626 * NOTE: Assumes the current instruction references this physical page though a virtual address!! … … 4630 4633 VMMR0DECL(int) VMXR0InvalidatePhysPage(PVM pVM, PVMCPU pVCpu, RTGCPHYS GCPhys) 4631 4634 { 4632 bool fFlushPending = VMCPU_FF_ISSET(pVCpu, VMCPU_FF_TLB_FLUSH);4633 4634 4635 LogFlow(("VMXR0InvalidatePhysPage %RGp\n", GCPhys)); 4635 4636
Note:
See TracChangeset
for help on using the changeset viewer.