VirtualBox

Changeset 60624 in vbox


Ignore:
Timestamp:
Apr 21, 2016 1:16:47 PM (8 years ago)
Author:
vboxsync
Message:

VMM/APIC: Diagnostics.

File:
1 edited

Legend:

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

    r60605 r60624  
    615615
    616616
     617#ifdef DEBUG_ramshankar
     618/**
     619 * Helper for dumping per-VCPU APIC state to the release logger.
     620 *
     621 * This is primarily concerned about the APIC state relevant for saved-states.
     622 *
     623 * @param   pVCpu       The cross context virtual CPU structure.
     624 * @param   pszPrefix   A caller supplied prefix before dumping parts of the
     625 *                      state.
     626 */
     627static void apicR3DumpState(PVMCPU pVCpu, const char *pszPrefix)
     628{
     629    PCAPICCPU pApicCpu = VMCPU_TO_APICCPU(pVCpu);
     630
     631    /* The auxiliary state. */
     632    LogRel(("APIC%u: uApicBaseMsr    = %#RX64\n", pVCpu->idCpu, pApicCpu->uApicBaseMsr));
     633    LogRel(("APIC%u: uEsrInternal    = %#RX64\n", pVCpu->idCpu, pApicCpu->uEsrInternal));
     634
     635    /* The timer. */
     636    LogRel(("APIC%u: %s APIC Timer:\n", pVCpu->idCpu));
     637    LogRel(("APIC%u: u64TimerInitial = %#RU64\n", pVCpu->idCpu, pApicCpu->u64TimerInitial));
     638
     639    /* The PIBs. */
     640    LogRel(("APIC%u: %s APIC PIB:\n", pVCpu->idCpu, pszPrefix));
     641    LogRel(("%.*Rhxs\n", sizeof(APICPIB), pApicCpu->pvApicPibR3));
     642    LogRel(("APIC%u: %s APIC Level PIB:\n", pVCpu->idCpu, pszPrefix));
     643    LogRel(("%.*Rhxs\n", sizeof(APICPIB), &pApicCpu->ApicPibLevel));
     644
     645    /* The APIC page. */
     646    LogRel(("APIC%u: %s APIC page\n:", pVCpu->idCpu, pszPrefix));
     647    LogRel(("%.*Rhxs\n", sizeof(XAPICPAGE), pApicCpu->pvApicPageR3));
     648}
     649#endif
     650
     651
    617652/**
    618653 * Worker for saving per-VM APIC data.
     
    722757        TMR3TimerSave(pApicCpu->pTimerR3, pSSM);
    723758        SSMR3PutU64(pSSM, pApicCpu->u64TimerInitial);
     759
     760#ifdef DEBUG_ramshankar
     761        apicR3DumpState(pVCpu, "Saved");
     762#endif
    724763    }
    725764
     
    793832                apicHintTimerFreq(pApicCpu, uInitialCount, uTimerShift);
    794833            }
     834
     835#ifdef DEBUG_ramshankar
     836            apicR3DumpState(pVCpu, "Loaded");
     837#endif
    795838        }
    796839        else
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