~ubuntu-branches/ubuntu/vivid/virtualbox/vivid

« back to all changes in this revision

Viewing changes to src/VBox/Main/src-client/GuestImpl.cpp

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2013-03-31 23:25:01 UTC
  • mfrom: (1.1.14)
  • Revision ID: package-import@ubuntu.com-20130331232501-l72jhvixkeyyz6xc
Tags: 4.2.10-dfsg-0ubuntu1
* Start the virtualbox-guest-x11 init script earlier.
  The vboxvideo module needs to be loaded before X starts.
* Change runlevels of virtualbox-guest-x11 init script on upgrade.
* Fix build failure with the Debian wheezy kernel which backports the drm
  subsystem from Linux 3.4. (Closes: #703358)
* Drop build-dependency on bcc as it's not needed anymore.

Show diffs side-by-side

added added

removed removed

Lines of Context:
268
268
 
269
269
        /*
270
270
         * There is no point in collecting VM shared memory if other memory
271
 
         * statistics are not available yet. Or is it?
 
271
         * statistics are not available yet. Or is there?
272
272
         */
273
273
        if (validStats)
274
274
        {
275
275
            /* Query the missing per-VM memory statistics. */
276
276
            rc = PGMR3QueryMemoryStats(pVM.raw(), &uTotalMem, &uPrivateMem, &uSharedMem, &uZeroMem);
277
277
            if (rc == VINF_SUCCESS)
278
 
            {
279
278
                validStats |= pm::VMSTATMASK_GUEST_MEMSHARED;
280
 
            }
281
279
        }
282
280
 
283
281
        if (mCollectVMMStats)
285
283
            rc = PGMR3QueryGlobalMemoryStats(pVM.raw(), &uAllocTotal, &uFreeTotal, &uBalloonedTotal, &uSharedTotal);
286
284
            AssertRC(rc);
287
285
            if (rc == VINF_SUCCESS)
288
 
            {
289
 
                validStats |=
290
 
                    pm::VMSTATMASK_VMM_ALLOC  | pm::VMSTATMASK_VMM_FREE |
291
 
                    pm::VMSTATMASK_VMM_BALOON | pm::VMSTATMASK_VMM_SHARED;
292
 
            }
 
286
                validStats |= pm::VMSTATMASK_VMM_ALLOC  | pm::VMSTATMASK_VMM_FREE
 
287
                           |  pm::VMSTATMASK_VMM_BALOON | pm::VMSTATMASK_VMM_SHARED;
293
288
        }
294
289
 
295
290
        uint64_t uRxPrev = mNetStatRx;
296
291
        uint64_t uTxPrev = mNetStatTx;
297
292
        mNetStatRx = mNetStatTx = 0;
298
293
        rc = STAMR3Enum(pVM, "*/ReceiveBytes|*/TransmitBytes", staticEnumStatsCallback, this);
 
294
        AssertRC(rc);
 
295
 
299
296
        uint64_t uTsNow = RTTimeNanoTS();
300
 
        uint64_t uTimePassed = uTsNow - mNetStatLastTs;
301
 
        mNetStatLastTs = uTsNow;
302
 
        uNetStatRx = (ULONG)((mNetStatRx - uRxPrev) * 1000000 / (uTimePassed / 1000)); /* in bytes per second */
303
 
        uNetStatTx = (ULONG)((mNetStatTx - uTxPrev) * 1000000 / (uTimePassed / 1000)); /* in bytes per second */
304
 
        LogFlowThisFunc(("Net Rx=%llu Tx=%llu Ts=%llu Delta=%llu\n", mNetStatRx, mNetStatTx, uTsNow, uTimePassed));
305
 
        AssertRC(rc);
306
 
        validStats |= pm::VMSTATMASK_NET_RX | pm::VMSTATMASK_NET_TX;
 
297
        uint64_t cNsPassed = uTsNow - mNetStatLastTs;
 
298
        if (cNsPassed >= 1000)
 
299
        {
 
300
            mNetStatLastTs = uTsNow;
 
301
 
 
302
            uNetStatRx = (ULONG)((mNetStatRx - uRxPrev) * 1000000 / (cNsPassed / 1000)); /* in bytes per second */
 
303
            uNetStatTx = (ULONG)((mNetStatTx - uTxPrev) * 1000000 / (cNsPassed / 1000)); /* in bytes per second */
 
304
            validStats |= pm::VMSTATMASK_NET_RX | pm::VMSTATMASK_NET_TX;
 
305
            LogFlowThisFunc(("Net Rx=%llu Tx=%llu Ts=%llu Delta=%llu\n", mNetStatRx, mNetStatTx, uTsNow, cNsPassed));
 
306
        }
 
307
        else
 
308
        {
 
309
            /* Can happen on resume or if we're using a non-monotonic clock
 
310
               source for the timer and the time is adjusted. */
 
311
            mNetStatRx = uRxPrev;
 
312
            mNetStatTx = uTxPrev;
 
313
            LogThisFunc(("Net Ts=%llu cNsPassed=%llu - too small interval\n", uTsNow, cNsPassed));
 
314
        }
307
315
    }
308
316
 
309
317
    mParent->reportVmStatistics(validStats,