VirtualBox

Ignore:
Timestamp:
Apr 20, 2010 8:36:25 AM (15 years ago)
Author:
vboxsync
Message:

Guest statistics: be more verbose on error in Linux guests; added missing CPU/user to Solaris guests (copy'n'paste error)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServiceStats.cpp

    r28009 r28506  
    344344        RTStrmClose(pStrm);
    345345    }
     346    else
     347        VBoxServiceVerbose(3, "VBoxStatsReportStatistics: memory info not available!\n");
    346348
    347349    req.guestStats.u32PageSize = getpagesize();
     
    361363    /** @todo req.guestStats.u32MemKernelNonPaged, make any sense? = 0? */
    362364
     365    bool fCpuInfoAvail = false;
    363366    rc = RTStrmOpen("/proc/stat", "r", &pStrm);
    364367    if (RT_SUCCESS(rc))
     
    414417                                                                 + u64DeltaNice) * 100 / u64DeltaAll);
    415418                    req.guestStats.u32StatCaps |= VBOX_GUEST_STAT_CPU_LOAD_IDLE \
    416                                                | VBOX_GUEST_STAT_CPU_LOAD_KERNEL \
    417                                                | VBOX_GUEST_STAT_CPU_LOAD_USER;
     419                                               |  VBOX_GUEST_STAT_CPU_LOAD_KERNEL \
     420                                               |  VBOX_GUEST_STAT_CPU_LOAD_USER;
     421                    fCpuInfoAvail = true;
    418422                    rc = VbglR3StatReport(&req);
    419423                    if (RT_SUCCESS(rc))
     
    422426                        VBoxServiceVerbose(3, "VBoxStatsReportStatistics: stats report failed with rc=%Rrc\n", rc);
    423427                }
     428                else
     429                    VBoxServiceVerbose(3, "VBoxStatsReportStatistics: skipping information for CPU%u\n", u32CpuId);
    424430            }
    425431        }
    426432        RTStrmClose(pStrm);
     433    }
     434    if (!fCpuInfoAvail)
     435    {
     436        VBoxServiceVerbose(3, "VBoxStatsReportStatistics: CPU info not available!\n");
     437        rc = VbglR3StatReport(&req);
     438        if (RT_SUCCESS(rc))
     439            VBoxServiceVerbose(3, "VBoxStatsReportStatistics: new statistics reported successfully!\n");
     440        else
     441            VBoxServiceVerbose(3, "VBoxStatsReportStatistics: stats report failed with rc=%Rrc\n", rc);
    427442    }
    428443
     
    542557                req.guestStats.u32CpuLoad_Idle   = (uint32_t)(u64DeltaIdle   * 100 / u64DeltaAll);
    543558                req.guestStats.u32CpuLoad_Kernel = (uint32_t)(u64DeltaSystem * 100 / u64DeltaAll);
     559                req.guestStats.u32CpuLoad_User   = (uint32_t)(u64DeltaUser   * 100 / u64DeltaAll);
    544560
    545561                req.guestStats.u32StatCaps |= VBOX_GUEST_STAT_CPU_LOAD_IDLE \
    546                                            | VBOX_GUEST_STAT_CPU_LOAD_KERNEL \
    547                                            | VBOX_GUEST_STAT_CPU_LOAD_USER;
     562                                           |  VBOX_GUEST_STAT_CPU_LOAD_KERNEL \
     563                                           |  VBOX_GUEST_STAT_CPU_LOAD_USER;
    548564
    549565                cCPUs++;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette