Changeset 44903 in vbox
- Timestamp:
- Mar 3, 2013 11:34:09 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 84073
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/GuestImpl.cpp
r44528 r44903 264 264 /* 265 265 * There is no point in collecting VM shared memory if other memory 266 * statistics are not available yet. Or is it?266 * statistics are not available yet. Or is there? 267 267 */ 268 268 if (validStats) … … 272 272 rc = PGMR3QueryMemoryStats(ptrVM.rawUVM(), &cbTotalMemIgn, &cbPrivateMemIgn, &cbSharedMem, &cbZeroMemIgn); 273 273 if (rc == VINF_SUCCESS) 274 {275 274 validStats |= pm::VMSTATMASK_GUEST_MEMSHARED; 276 }277 275 } 278 276 … … 282 280 AssertRC(rc); 283 281 if (rc == VINF_SUCCESS) 284 { 285 validStats |= 286 pm::VMSTATMASK_VMM_ALLOC | pm::VMSTATMASK_VMM_FREE | 287 pm::VMSTATMASK_VMM_BALOON | pm::VMSTATMASK_VMM_SHARED; 288 } 282 validStats |= pm::VMSTATMASK_VMM_ALLOC | pm::VMSTATMASK_VMM_FREE 283 | pm::VMSTATMASK_VMM_BALOON | pm::VMSTATMASK_VMM_SHARED; 289 284 } 290 285 … … 293 288 mNetStatRx = mNetStatTx = 0; 294 289 rc = STAMR3Enum(ptrVM.rawUVM(), "*/ReceiveBytes|*/TransmitBytes", staticEnumStatsCallback, this); 290 AssertRC(rc); 291 295 292 uint64_t uTsNow = RTTimeNanoTS(); 296 uint64_t uTimePassed = uTsNow - mNetStatLastTs; 297 mNetStatLastTs = uTsNow; 298 uNetStatRx = (ULONG)((mNetStatRx - uRxPrev) * 1000000 / (uTimePassed / 1000)); /* in bytes per second */ 299 uNetStatTx = (ULONG)((mNetStatTx - uTxPrev) * 1000000 / (uTimePassed / 1000)); /* in bytes per second */ 300 LogFlowThisFunc(("Net Rx=%llu Tx=%llu Ts=%llu Delta=%llu\n", mNetStatRx, mNetStatTx, uTsNow, uTimePassed)); 301 AssertRC(rc); 302 validStats |= pm::VMSTATMASK_NET_RX | pm::VMSTATMASK_NET_TX; 293 uint64_t cNsPassed = uTsNow - mNetStatLastTs; 294 if (cNsPassed >= 1000) 295 { 296 mNetStatLastTs = uTsNow; 297 298 uNetStatRx = (ULONG)((mNetStatRx - uRxPrev) * 1000000 / (cNsPassed / 1000)); /* in bytes per second */ 299 uNetStatTx = (ULONG)((mNetStatTx - uTxPrev) * 1000000 / (cNsPassed / 1000)); /* in bytes per second */ 300 validStats |= pm::VMSTATMASK_NET_RX | pm::VMSTATMASK_NET_TX; 301 LogFlowThisFunc(("Net Rx=%llu Tx=%llu Ts=%llu Delta=%llu\n", mNetStatRx, mNetStatTx, uTsNow, cNsPassed)); 302 } 303 else 304 { 305 /* Can happen on resume or if we're using a non-monotonic clock 306 source for the timer and the time is adjusted. */ 307 mNetStatRx = uRxPrev; 308 mNetStatTx = uTxPrev; 309 LogThisFunc(("Net Ts=%llu cNsPassed=%llu - too small interval\n", uTsNow, cNsPassed)); 310 } 303 311 } 304 312
Note:
See TracChangeset
for help on using the changeset viewer.