Changeset 10283 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Jul 5, 2008 3:24:20 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 32895
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r10281 r10283 65 65 #ifdef IN_RING0 /* no mappings in VT-x and AMD-V mode */ 66 66 # define PGM_WITHOUT_MAPPINGS 67 #endif68 69 /* There's no need for tracking physical pages when there's no guest paging involved. */70 #ifdef PGMPOOL_WITH_USER_TRACKING71 # if PGM_WITH_PAGING(PGM_GST_TYPE)72 # define PGMPOOL_WITH_USER_TRACKING_ACTIVE73 # endif74 67 #endif 75 68 … … 1141 1134 if (pPT->a[iPTEDst].n.u1Present) 1142 1135 { 1143 # ifdef PGMPOOL_WITH_USER_TRACKING _ACTIVE1136 # ifdef PGMPOOL_WITH_USER_TRACKING 1144 1137 /* This is very unlikely with caching/monitoring enabled. */ 1145 1138 PGM_BTH_NAME(SyncPageWorkerTrackDeref)(pVM, pShwPage, pPT->a[iPTEDst].u & SHW_PTE_PG_MASK); … … 1250 1243 1251 1244 1252 #ifdef PGMPOOL_WITH_USER_TRACKING _ACTIVE1245 #ifdef PGMPOOL_WITH_USER_TRACKING 1253 1246 /** 1254 1247 * Update the tracking of shadowed pages. … … 1340 1333 pShwPage->iFirstPresent = iPTDst; 1341 1334 } 1342 #endif /* PGMPOOL_WITH_USER_TRACKING _ACTIVE*/1335 #endif /* PGMPOOL_WITH_USER_TRACKING */ 1343 1336 1344 1337 … … 1422 1415 } 1423 1416 1424 #ifdef PGMPOOL_WITH_USER_TRACKING _ACTIVE1417 #ifdef PGMPOOL_WITH_USER_TRACKING 1425 1418 /* 1426 1419 * Keep user track up to date. … … 1442 1435 PGM_BTH_NAME(SyncPageWorkerTrackDeref)(pVM, pShwPage, pPteDst->u & SHW_PTE_PG_MASK); 1443 1436 } 1444 #endif /* PGMPOOL_WITH_USER_TRACKING _ACTIVE*/1437 #endif /* PGMPOOL_WITH_USER_TRACKING */ 1445 1438 1446 1439 /* … … 1460 1453 */ 1461 1454 LogFlow(("SyncPageWorker: page not present in Pte\n")); 1462 #ifdef PGMPOOL_WITH_USER_TRACKING _ACTIVE1455 #ifdef PGMPOOL_WITH_USER_TRACKING 1463 1456 /* Keep user track up to date. */ 1464 1457 if (pPteDst->n.u1Present) … … 1467 1460 PGM_BTH_NAME(SyncPageWorkerTrackDeref)(pVM, pShwPage, pPteDst->u & SHW_PTE_PG_MASK); 1468 1461 } 1469 #endif /* PGMPOOL_WITH_USER_TRACKING _ACTIVE*/1462 #endif /* PGMPOOL_WITH_USER_TRACKING */ 1470 1463 pPteDst->u = 0; 1471 1464 /** @todo count these. */ … … 1695 1688 } 1696 1689 const unsigned iPTDst = (GCPtrPage >> SHW_PT_SHIFT) & SHW_PT_MASK; 1697 # ifdef PGMPOOL_WITH_USER_TRACKING _ACTIVE1690 # ifdef PGMPOOL_WITH_USER_TRACKING 1698 1691 if (PteDst.n.u1Present && !pPTDst->a[iPTDst].n.u1Present) 1699 1692 PGM_BTH_NAME(SyncPageWorkerTrackAddref)(pVM, pShwPage, HCPhys >> MM_RAM_FLAGS_IDX_SHIFT, pPage, iPTDst); … … 2565 2558 else 2566 2559 PteDst.u = PGM_PAGE_GET_HCPHYS(pPage) | PteDstBase.u; 2567 # ifdef PGMPOOL_WITH_USER_TRACKING _ACTIVE2560 # ifdef PGMPOOL_WITH_USER_TRACKING 2568 2561 if (PteDst.n.u1Present) 2569 2562 PGM_BTH_NAME(SyncPageWorkerTrackAddref)(pVM, pShwPage, pPage->HCPhys >> MM_RAM_FLAGS_IDX_SHIFT, pPage, iPTDst); /** @todo PAGE FLAGS */ -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r10282 r10283 1777 1777 case PGMPOOLKIND_PAE_PT_FOR_PAE_PT: 1778 1778 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 1779 case PGMPOOLKIND_32BIT_PT_FOR_PHYS: 1780 case PGMPOOLKIND_PAE_PT_FOR_PHYS: 1779 1781 { 1780 1782 #ifdef PGMPOOL_WITH_USER_TRACKING … … 2233 2235 case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT: 2234 2236 case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB: 2237 case PGMPOOLKIND_32BIT_PT_FOR_PHYS: 2235 2238 { 2236 2239 const uint32_t u32 = PGM_PAGE_GET_HCPHYS(pPhysPage) | X86_PTE_P; … … 2262 2265 case PGMPOOLKIND_PAE_PT_FOR_PAE_PT: 2263 2266 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 2267 case PGMPOOLKIND_PAE_PT_FOR_PHYS: 2264 2268 { 2265 2269 const uint64_t u64 = PGM_PAGE_GET_HCPHYS(pPhysPage) | X86_PTE_P; … … 2287 2291 } 2288 2292 2289 case PGMPOOLKIND_32BIT_PT_FOR_PHYS:2290 case PGMPOOLKIND_PAE_PT_FOR_PHYS:2291 break; /* nothing to do */2292 2293 2293 default: 2294 2294 AssertFatalMsgFailed(("enmKind=%d iShw=%d\n", pPage->enmKind, iShw)); … … 2409 2409 case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT: 2410 2410 case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB: 2411 case PGMPOOLKIND_32BIT_PT_FOR_PHYS: 2411 2412 { 2412 2413 unsigned cPresent = pPage->cPresent; … … 2430 2431 case PGMPOOLKIND_PAE_PT_FOR_PAE_PT: 2431 2432 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 2433 case PGMPOOLKIND_PAE_PT_FOR_PHYS: 2432 2434 { 2433 2435 unsigned cPresent = pPage->cPresent; … … 3156 3158 } 3157 3159 3160 case PGMPOOLKIND_32BIT_PT_FOR_PHYS: /* treat it like a 4 MB page */ 3158 3161 case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB: 3159 3162 { … … 3164 3167 } 3165 3168 3169 case PGMPOOLKIND_PAE_PT_FOR_PHYS: /* treat it like a 4 MB page */ 3166 3170 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 3167 3171 case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB: … … 3180 3184 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 3181 3185 case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB: 3186 case PGMPOOLKIND_32BIT_PT_FOR_PHYS: 3187 case PGMPOOLKIND_PAE_PT_FOR_PHYS: 3182 3188 break; 3183 3189 #endif /* !PGMPOOL_WITH_GCPHYS_TRACKING */ … … 3186 3192 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 3187 3193 case PGMPOOLKIND_64BIT_PD_FOR_64BIT_PD: 3194 case PGMPOOLKIND_64BIT_PD_FOR_PHYS: 3188 3195 pgmPoolTrackDerefPDPae(pPool, pPage, (PX86PDPAE)pvShw); 3189 3196 break; 3190 3197 3198 case PGMPOOLKIND_64BIT_PDPT_FOR_PHYS: 3191 3199 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 3192 3200 pgmPoolTrackDerefPDPT64Bit(pPool, pPage, (PX86PDPT)pvShw); … … 3195 3203 case PGMPOOLKIND_64BIT_PML4_FOR_64BIT_PML4: 3196 3204 pgmPoolTrackDerefPML464Bit(pPool, pPage, (PX86PML4)pvShw); 3197 break;3198 3199 case PGMPOOLKIND_64BIT_PD_FOR_PHYS:3200 case PGMPOOLKIND_64BIT_PDPT_FOR_PHYS:3201 case PGMPOOLKIND_PAE_PT_FOR_PHYS:3202 case PGMPOOLKIND_32BIT_PT_FOR_PHYS:3203 /* No tracking here. */3204 3205 break; 3205 3206
Note:
See TracChangeset
for help on using the changeset viewer.