- Timestamp:
- Nov 24, 2009 4:16:49 PM (15 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMPhys.cpp
r24767 r24918 1142 1142 { 1143 1143 Assert(PGMIsLockOwner(pVM)); 1144 /* 1145 * We batch up pages before freeing them. 1144 1145 /* 1146 * We batch up pages that should be freed instead of calling GMM for 1147 * each and every one of them. 1146 1148 */ 1147 1149 uint32_t cPendingPages = 0; … … 3225 3227 pVM->pgm.s.cZeroPages++; 3226 3228 3229 /* Deal with write monitored pages. */ 3230 if (PGM_PAGE_GET_STATE(pPage) == PGM_PAGE_STATE_WRITE_MONITORED) 3231 { 3232 PGM_PAGE_SET_WRITTEN_TO(pPage); 3233 pVM->pgm.s.cWrittenToPages++; 3234 } 3235 3227 3236 /* 3228 3237 * pPage = ZERO page. -
trunk/src/VBox/VMM/VM.cpp
r24874 r24918 1502 1502 * @param pVM The VM handle. 1503 1503 * @param pVCpu The VMCPU handle of the EMT. 1504 * @param pvUser Ignored.1504 * @param pvUser The pfSuspended argument of vmR3SaveTeleport. 1505 1505 */ 1506 1506 static DECLCALLBACK(VBOXSTRICTRC) vmR3LiveDoStep1Cleanup(PVM pVM, PVMCPU pVCpu, void *pvUser) 1507 1507 { 1508 1508 LogFlow(("vmR3LiveDoStep1Cleanup: pVM=%p pVCpu=%p/#%u\n", pVM, pVCpu, pVCpu->idCpu)); 1509 NOREF(pvUser); NOREF(pVCpu); 1509 bool *pfSuspended = (bool *)pvUser; 1510 NOREF(pVCpu); 1510 1511 1511 1512 int rc = vmR3TrySetState(pVM, "vmR3LiveDoStep1Cleanup", 6, 1512 VMSTATE_OFF, VMSTATE_OFF_LS, 1513 VMSTATE_FATAL_ERROR, VMSTATE_FATAL_ERROR_LS, 1514 VMSTATE_GURU_MEDITATION, VMSTATE_GURU_MEDITATION_LS, 1513 VMSTATE_OFF, VMSTATE_OFF_LS, /* 1 */ 1514 VMSTATE_FATAL_ERROR, VMSTATE_FATAL_ERROR_LS, /* 2 */ 1515 VMSTATE_GURU_MEDITATION, VMSTATE_GURU_MEDITATION_LS, /* 3 */ 1516 VMSTATE_SUSPENDED, VMSTATE_SUSPENDED_LS, /* 4 */ 1517 VMSTATE_SUSPENDED, VMSTATE_SUSPENDED_EXT_LS, 1515 1518 VMSTATE_RUNNING, VMSTATE_RUNNING_LS, 1516 VMSTATE_SUSPENDED, VMSTATE_SUSPENDED_EXT_LS,1517 1519 VMSTATE_DEBUGGING, VMSTATE_DEBUGGING_LS); 1518 1520 if (rc == 1) … … 1522 1524 else if (rc == 3) 1523 1525 rc = VERR_SSM_LIVE_GURU_MEDITATION; 1526 else if (rc == 4) 1527 { 1528 *pfSuspended = true; 1529 rc = VINF_SUCCESS; 1530 } 1524 1531 else if (rc > 0) 1525 1532 rc = VINF_SUCCESS; … … 1705 1712 AssertMsg(rc2 == rc, ("%Rrc != %Rrc\n", rc2, rc)); 1706 1713 1707 rc2 = VMMR3EmtRendezvous(pVM, VMMEMTRENDEZVOUS_FLAGS_TYPE_ONCE, vmR3LiveDoStep1Cleanup, NULL);1714 rc2 = VMMR3EmtRendezvous(pVM, VMMEMTRENDEZVOUS_FLAGS_TYPE_ONCE, vmR3LiveDoStep1Cleanup, pfSuspended); 1708 1715 if (RT_FAILURE(rc2) && rc == VERR_SSM_CANCELLED) 1709 1716 rc = rc2;
Note:
See TracChangeset
for help on using the changeset viewer.