Changeset 22701 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Sep 2, 2009 10:10:52 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r22698 r22701 1370 1370 1371 1371 # ifdef PGMPOOL_WITH_OPTIMIZED_DIRTY_PT 1372 1373 # ifdef VBOX_STRICT 1372 1374 /** 1373 1375 * Check references to guest physical memory in a PAE / PAE page table. … … 1421 1423 Assert(!cErrors); 1422 1424 } 1425 # endif /* VBOX_STRICT */ 1423 1426 1424 1427 /** … … 1512 1515 #ifdef VBOX_STRICT 1513 1516 uint64_t fFlags = 0; 1514 rc = PGMShwGetPage(VMMGetCpu(pVM), pPage->pvDirtyFault, &fFlags, NULL); 1515 AssertMsg( (rc == VINF_SUCCESS && !(fFlags & X86_PTE_RW)) 1516 /* In the SMP case the page table might be removed while we wait for the PGM lock in the trap handler. */ 1517 || rc == VERR_PAGE_TABLE_NOT_PRESENT 1518 || rc == VERR_PAGE_NOT_PRESENT, 1519 ("PGMShwGetPage -> GCPtr=%RGv rc=%d flags=%RX64\n", pPage->pvDirtyFault, rc, fFlags)); 1517 RTHCPHYS HCPhys; 1518 rc = PGMShwGetPage(VMMGetCpu(pVM), pPage->pvDirtyFault, &fFlags, &HCPhys); 1519 AssertMsg( ( rc == VINF_SUCCESS 1520 && (!(fFlags & X86_PTE_RW) || HCPhys != pPage->Core.Key)) 1521 /* In the SMP case the page table might be removed while we wait for the PGM lock in the trap handler. */ 1522 || rc == VERR_PAGE_TABLE_NOT_PRESENT 1523 || rc == VERR_PAGE_NOT_PRESENT, 1524 ("PGMShwGetPage -> GCPtr=%RGv rc=%d flags=%RX64\n", pPage->pvDirtyFault, rc, fFlags)); 1520 1525 #endif 1521 1526 … … 1571 1576 int rc = PGM_GCPHYS_2_PTR(pPool->CTX_SUFF(pVM), pPage->GCPhys, &pvGst); AssertReleaseRC(rc); 1572 1577 memcpy(&pPool->aDirtyPages[idxFree][0], pvGst, PAGE_SIZE); 1578 #ifdef VBOX_STRICT 1573 1579 pgmPoolTrackCheckPTPaePae(pPool, pPage, (PX86PTPAE)pvShw, (PCX86PTPAE)pvGst); 1580 #endif 1574 1581 1575 1582 STAM_COUNTER_INC(&pPool->StatDirtyPage);
Note:
See TracChangeset
for help on using the changeset viewer.