Changeset 23543 in vbox
- Timestamp:
- Oct 4, 2009 9:24:12 PM (15 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/VMM/PGMSavedState.cpp (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMSavedState.cpp
r23539 r23543 719 719 * Special handling of zero pages. 720 720 */ 721 if (pLSPage->fZero) 721 bool const fZero = pLSPage->fZero; 722 if (fZero) 722 723 { 723 724 if (ASMMemIsZeroPage(pbPage)) … … 771 772 pVM->pgm.s.LiveSave.Mmio2.cReadyPages--; 772 773 pVM->pgm.s.LiveSave.Mmio2.cDirtyPages++; 774 if (fZero) 775 pVM->pgm.s.LiveSave.Mmio2.cZeroPages--; 773 776 } 774 777 return true; … … 937 940 pVM->pgm.s.LiveSave.Mmio2.cDirtyPages--; 938 941 pVM->pgm.s.LiveSave.Mmio2.cReadyPages++; 942 if (u8Type == PGM_STATE_REC_MMIO2_ZERO) 943 pVM->pgm.s.LiveSave.Mmio2.cZeroPages++; 939 944 iPageLast = iPage; 940 945 } … … 1246 1251 Assert(!paLSPages[iPage].fWriteMonitored); 1247 1252 pVM->pgm.s.LiveSave.Ram.cMonitoredPages++; 1248 if (paLSPages[iPage].fZero)1249 pVM->pgm.s.LiveSave.Ram.cZeroPages--;1250 1253 } 1251 1254 … … 1253 1256 { 1254 1257 pVM->pgm.s.LiveSave.Ram.cReadyPages--; 1258 if (paLSPages[iPage].fZero) 1259 pVM->pgm.s.LiveSave.Ram.cZeroPages--; 1255 1260 pVM->pgm.s.LiveSave.Ram.cDirtyPages++; 1256 1261 if (++paLSPages[iPage].cDirtied > PGMLIVSAVEPAGE_MAX_DIRTIED) … … 1301 1306 if (!paLSPages[iPage].fZero) 1302 1307 { 1303 paLSPages[iPage].fZero = 1;1304 paLSPages[iPage].fShared = 0;1305 #ifdef PGMLIVESAVERAMPAGE_WITH_CRC321306 paLSPages[iPage].u32Crc = PGM_STATE_CRC32_ZERO_PAGE;1307 #endif1308 1308 if (!paLSPages[iPage].fDirty) 1309 1309 { … … 1312 1312 pVM->pgm.s.LiveSave.Ram.cDirtyPages++; 1313 1313 } 1314 pVM->pgm.s.LiveSave.Ram.cZeroPages++; 1314 paLSPages[iPage].fZero = 1; 1315 paLSPages[iPage].fShared = 0; 1316 #ifdef PGMLIVESAVERAMPAGE_WITH_CRC32 1317 paLSPages[iPage].u32Crc = PGM_STATE_CRC32_ZERO_PAGE; 1318 #endif 1315 1319 } 1316 1320 break; … … 1319 1323 if (!paLSPages[iPage].fShared) 1320 1324 { 1325 if (!paLSPages[iPage].fDirty) 1326 { 1327 paLSPages[iPage].fDirty = 1; 1328 pVM->pgm.s.LiveSave.Ram.cReadyPages--; 1329 if (paLSPages[iPage].fZero) 1330 pVM->pgm.s.LiveSave.Ram.cZeroPages--; 1331 pVM->pgm.s.LiveSave.Ram.cDirtyPages++; 1332 } 1321 1333 paLSPages[iPage].fZero = 0; 1322 1334 paLSPages[iPage].fShared = 1; … … 1324 1336 pgmR3StateCalcCrc32ForRamPage(pVM, pCur, paLSPages, iPage); 1325 1337 #endif 1326 if (!paLSPages[iPage].fDirty)1327 {1328 paLSPages[iPage].fDirty = 1;1329 pVM->pgm.s.LiveSave.Ram.cReadyPages--;1330 pVM->pgm.s.LiveSave.Ram.cDirtyPages++;1331 }1332 1338 } 1333 1339 break; … … 1365 1371 pVM->pgm.s.LiveSave.Ram.cDirtyPages--; 1366 1372 else 1373 { 1367 1374 pVM->pgm.s.LiveSave.Ram.cReadyPages--; 1375 if (paLSPages[iPage].fZero) 1376 pVM->pgm.s.LiveSave.Ram.cZeroPages--; 1377 } 1368 1378 pVM->pgm.s.LiveSave.cIgnoredPages++; 1369 1379 } … … 1526 1536 paLSPages[iPage].fDirty = 0; 1527 1537 pVM->pgm.s.LiveSave.Ram.cReadyPages++; 1528 pVM->pgm.s.LiveSave.Ram.cDirtyPages--;1529 1538 if (fZero) 1530 1539 pVM->pgm.s.LiveSave.Ram.cZeroPages++; 1540 pVM->pgm.s.LiveSave.Ram.cDirtyPages--; 1531 1541 } 1532 1542 if (idRamRangesGen != pVM->pgm.s.idRamRangesGen)
Note:
See TracChangeset
for help on using the changeset viewer.

