VirtualBox

Changeset 54550 in vbox


Ignore:
Timestamp:
Feb 27, 2015 1:01:51 PM (10 years ago)
Author:
vboxsync
Message:

TM: Updated per cpu info logging for the gip (log everything that might possibly be useful).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/TM.cpp

    r54549 r54550  
    263263                          N_("The GIP update interval is too big. u32UpdateIntervalNS=%RU32 (u32UpdateHz=%RU32)"),
    264264                          pGip->u32UpdateIntervalNS, pGip->u32UpdateHz);
    265     LogRel(("TM: GIP - u32Mode=%d (%s) u32UpdateHz=%u u32UpdateIntervalNS=%u\n", pGip->u32Mode,
    266             SUPGetGIPModeName(pGip), pGip->u32UpdateHz,
    267             pGip->u32UpdateIntervalNS));
     265
     266    /* Log GIP info that may come in handy. */
     267    LogRel(("TM: GIP - u32Mode=%d (%s) u32UpdateHz=%u u32UpdateIntervalNS=%u enmUseTscDelta=%d fGetGipCpu=%#x cCpus=%d\n",
     268            pGip->u32Mode, SUPGetGIPModeName(pGip), pGip->u32UpdateHz, pGip->u32UpdateIntervalNS,
     269            pGip->enmUseTscDelta, pGip->fGetGipCpu, pGip->cCpus));
    268270    LogRel(("TM: GIP - u64CpuHz=%'RU64 (%#RX64)  SUPGetCpuHzFromGip => %'RU64\n",
    269271            pGip->u64CpuHz, pGip->u64CpuHz, SUPGetCpuHzFromGip(pGip)));
     272    for (uint32_t iCpuSet = 0; iCpuSet < RT_ELEMENTS(pGip->aiCpuFromCpuSetIdx); iCpuSet++)
     273    {
     274        uint16_t iGipCpu = pGip->aiCpuFromCpuSetIdx[iCpuSet];
     275        if (iGipCpu != UINT16_MAX)
     276            LogRel(("TM: GIP - CPU: iCpuSet=%#x idCpu=%#x idApic=%#x iGipCpu=%#x i64TSCDelta=%RI64 enmState=%d u64CpuHz=%RU64(*) cErrors=%u\n",
     277                    iCpuSet, pGip->aCPUs[iGipCpu].idCpu, pGip->aCPUs[iGipCpu].idApic, iGipCpu, pGip->aCPUs[iGipCpu].i64TSCDelta,
     278                    pGip->aCPUs[iGipCpu].enmState, pGip->aCPUs[iGipCpu].u64CpuHz, pGip->aCPUs[iGipCpu].cErrors));
     279    }
    270280
    271281    /*
     
    596606            pVM->tm.s.cTSCTicksPerSecond, pVM->tm.s.cTSCTicksPerSecond, pVM->tm.s.enmTSCMode, tmR3GetTSCModeName(pVM),
    597607            pVM->tm.s.fTSCTiedToExecution, pVM->tm.s.fTSCNotTiedToHalt));
    598 
    599     /*
    600      * Dump the GIPCPU TSC-deltas, iterate using the Apic Id to get master at the beginning in most cases.
    601      */
    602     LogRel(("TM: GIP - enmUseTscDelta=%d fGetGipCpu=%#x cCpus=%d\n",
    603             pGip->enmUseTscDelta, pGip->fGetGipCpu, pGip->cCpus));
    604     for (uint32_t i = 0; i < RT_ELEMENTS(pGip->aiCpuFromApicId); i++)
    605     {
    606         uint16_t iCpu = pGip->aiCpuFromApicId[i];
    607 #if 1
    608         if (iCpu != UINT16_MAX)
    609             LogRel(("TM: GIP - CPU[%3d]: idApic=%d i64TSCDelta=%RI64\n", pGip->aCPUs[iCpu].idCpu,
    610                     pGip->aCPUs[iCpu].idApic, pGip->aCPUs[iCpu].i64TSCDelta));
    611 #else
    612         /* Dump 2 entries per line, saves vertical space in release log but more dumps bytes due to formatting. */
    613         uint16_t iCpu2 = UINT16_MAX;
    614         for (unsigned k = i + 1; k < cGipCpus; k++)
    615         {
    616             iCpu2 = pGip->aiCpuFromApicId[k];
    617             if (iCpu2 != UINT16_MAX)
    618             {
    619                 i = k + 1;
    620                 break;
    621             }
    622         }
    623         if (   iCpu  != UINT16_MAX
    624             && iCpu2 != UINT16_MAX)
    625         {
    626             LogRel(("TM: GIP - CPU[%d]: idApic=%d i64TSCDelta=%-4lld CPU[%d]: idApic=%d i64TSCDelta=%lld\n",
    627                     pGip->aCPUs[iCpu].idCpu, pGip->aCPUs[iCpu].idApic,
    628                     pGip->aCPUs[iCpu].i64TSCDelta, pGip->aCPUs[iCpu2].idCpu,
    629                     pGip->aCPUs[iCpu2].idApic, pGip->aCPUs[iCpu2].i64TSCDelta));
    630         }
    631         else if (iCpu != UINT16_MAX)
    632             LogRel(("TM: GIP - CPU[%d]: idApic=%d i64TSCDelta=%lld\n", pGip->aCPUs[iCpu].idCpu,
    633                     pGip->aCPUs[iCpu].idApic));
    634 #endif
    635     }
    636608
    637609    /*
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