VirtualBox

Changeset 13701 in vbox


Ignore:
Timestamp:
Oct 30, 2008 11:31:19 PM (16 years ago)
Author:
vboxsync
Message:

VMM: some statistics cleanup.

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm.h

    r13698 r13701  
    104104    /** Set the VM runtime error message. */
    105105    VMMCALLHOST_VM_SET_RUNTIME_ERROR,
    106     /** Signal a ring 0 hypervisor assertion. */
    107     VMMCALLHOST_VM_R0_HYPER_ASSERTION,
     106    /** Signal a ring 0 assertion. */
     107    VMMCALLHOST_VM_R0_ASSERTION,
    108108    /** The usual 32-bit hack. */
    109109    VMMCALLHOST_32BIT_HACK = 0x7fffffff
  • trunk/src/VBox/VMM/VMM.cpp

    r13698 r13701  
    137137*******************************************************************************/
    138138static int                  vmmR3InitCoreCode(PVM pVM);
     139static void                 vmmR3InitRegisterStats(PVM pVM);
    139140static DECLCALLBACK(int)    vmmR3Save(PVM pVM, PSSMHANDLE pSSM);
    140141static DECLCALLBACK(int)    vmmR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t u32Version);
     
    218219         * (The page protection is modifed during R3 init completion.)
    219220         */
    220         /** @todo SMP: Per vCPU. */
     221        /** @todo SMP: Per vCPU, split up into functions. */
    221222#ifdef VBOX_STRICT_VMM_STACK
    222223        rc = MMHyperAlloc(pVM, VMM_STACK_SIZE + PAGE_SIZE + PAGE_SIZE, PAGE_SIZE, MM_TAG_VMM, (void **)&pVM->vmm.s.pbHCStack);
     
    295296                {
    296297                    /*
    297                      * Debug info.
     298                     * Debug info and statistics.
    298299                     */
    299300                    DBGFR3InfoRegisterInternal(pVM, "ff", "Displays the current Forced actions Flags.", vmmR3InfoFF);
    300 
    301                     /*
    302                      * Statistics.
    303                      */
    304                     STAM_REG(pVM, &pVM->vmm.s.StatRunGC,                    STAMTYPE_COUNTER, "/VMM/RunGC",                     STAMUNIT_OCCURENCES, "Number of context switches.");
    305                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetNormal,              STAMTYPE_COUNTER, "/VMM/GCRet/Normal",              STAMUNIT_OCCURENCES, "Number of VINF_SUCCESS returns.");
    306                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetInterrupt,           STAMTYPE_COUNTER, "/VMM/GCRet/Interrupt",           STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT returns.");
    307                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetInterruptHyper,      STAMTYPE_COUNTER, "/VMM/GCRet/InterruptHyper",      STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT_HYPER returns.");
    308                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetGuestTrap,           STAMTYPE_COUNTER, "/VMM/GCRet/GuestTrap",           STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_GUEST_TRAP returns.");
    309                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetRingSwitch,          STAMTYPE_COUNTER, "/VMM/GCRet/RingSwitch",          STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_RING_SWITCH returns.");
    310                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetRingSwitchInt,       STAMTYPE_COUNTER, "/VMM/GCRet/RingSwitchInt",       STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_RING_SWITCH_INT returns.");
    311                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetExceptionPrivilege,  STAMTYPE_COUNTER, "/VMM/GCRet/ExceptionPrivilege",  STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_EXCEPTION_PRIVILEGED returns.");
    312                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetStaleSelector,       STAMTYPE_COUNTER, "/VMM/GCRet/StaleSelector",       STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_STALE_SELECTOR returns.");
    313                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetIRETTrap,            STAMTYPE_COUNTER, "/VMM/GCRet/IRETTrap",            STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_IRET_TRAP returns.");
    314                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetEmulate,             STAMTYPE_COUNTER, "/VMM/GCRet/Emulate",             STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION returns.");
    315                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPatchEmulate,        STAMTYPE_COUNTER, "/VMM/GCRet/PatchEmulate",        STAMUNIT_OCCURENCES, "Number of VINF_PATCH_EMULATE_INSTR returns.");
    316                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetIORead,              STAMTYPE_COUNTER, "/VMM/GCRet/IORead",              STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_IOPORT_READ returns.");
    317                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetIOWrite,             STAMTYPE_COUNTER, "/VMM/GCRet/IOWrite",             STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_IOPORT_WRITE returns.");
    318                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetMMIORead,            STAMTYPE_COUNTER, "/VMM/GCRet/MMIORead",            STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_READ returns.");
    319                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetMMIOWrite,           STAMTYPE_COUNTER, "/VMM/GCRet/MMIOWrite",           STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_WRITE returns.");
    320                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetMMIOReadWrite,       STAMTYPE_COUNTER, "/VMM/GCRet/MMIOReadWrite",       STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_READ_WRITE returns.");
    321                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetMMIOPatchRead,       STAMTYPE_COUNTER, "/VMM/GCRet/MMIOPatchRead",       STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_PATCH_READ returns.");
    322                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetMMIOPatchWrite,      STAMTYPE_COUNTER, "/VMM/GCRet/MMIOPatchWrite",      STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_PATCH_WRITE returns.");
    323                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetLDTFault,            STAMTYPE_COUNTER, "/VMM/GCRet/LDTFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_GDT_FAULT returns.");
    324                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetGDTFault,            STAMTYPE_COUNTER, "/VMM/GCRet/GDTFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_LDT_FAULT returns.");
    325                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetIDTFault,            STAMTYPE_COUNTER, "/VMM/GCRet/IDTFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_IDT_FAULT returns.");
    326                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetTSSFault,            STAMTYPE_COUNTER, "/VMM/GCRet/TSSFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_TSS_FAULT returns.");
    327                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPDFault,             STAMTYPE_COUNTER, "/VMM/GCRet/PDFault",             STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_PD_FAULT returns.");
    328                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetCSAMTask,            STAMTYPE_COUNTER, "/VMM/GCRet/CSAMTask",            STAMUNIT_OCCURENCES, "Number of VINF_CSAM_PENDING_ACTION returns.");
    329                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetSyncCR3,             STAMTYPE_COUNTER, "/VMM/GCRet/SyncCR",              STAMUNIT_OCCURENCES, "Number of VINF_PGM_SYNC_CR3 returns.");
    330                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetMisc,                STAMTYPE_COUNTER, "/VMM/GCRet/Misc",                STAMUNIT_OCCURENCES, "Number of misc returns.");
    331                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPatchInt3,           STAMTYPE_COUNTER, "/VMM/GCRet/PatchInt3",           STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_INT3 returns.");
    332                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPatchPF,             STAMTYPE_COUNTER, "/VMM/GCRet/PatchPF",             STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_TRAP_PF returns.");
    333                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPatchGP,             STAMTYPE_COUNTER, "/VMM/GCRet/PatchGP",             STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_TRAP_GP returns.");
    334                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPatchIretIRQ,        STAMTYPE_COUNTER, "/VMM/GCRet/PatchIret",           STAMUNIT_OCCURENCES, "Number of VINF_PATM_PENDING_IRQ_AFTER_IRET returns.");
    335                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPageOverflow,        STAMTYPE_COUNTER, "/VMM/GCRet/InvlpgOverflow",      STAMUNIT_OCCURENCES, "Number of VERR_REM_FLUSHED_PAGES_OVERFLOW returns.");
    336                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetRescheduleREM,       STAMTYPE_COUNTER, "/VMM/GCRet/ScheduleREM",         STAMUNIT_OCCURENCES, "Number of VINF_EM_RESCHEDULE_REM returns.");
    337                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetToR3,                STAMTYPE_COUNTER, "/VMM/GCRet/ToR3",                STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_TO_R3 returns.");
    338                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetTimerPending,        STAMTYPE_COUNTER, "/VMM/GCRet/TimerPending",        STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_TIMER_PENDING returns.");
    339                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetInterruptPending,    STAMTYPE_COUNTER, "/VMM/GCRet/InterruptPending",    STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT_PENDING returns.");
    340                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetCallHost,            STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/Misc",       STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    341                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPGMGrowRAM,          STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/GrowRAM",    STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    342                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPDMLock,             STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/PDMLock",    STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    343                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetLogFlush,            STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/LogFlush",   STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    344                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPDMQueueFlush,       STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/QueueFlush", STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    345                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPGMPoolGrow,         STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/PGMPoolGrow",STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    346                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetRemReplay,           STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/REMReplay",  STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    347                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetVMSetError,          STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/VMSetError", STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    348                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPGMLock,             STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/PGMLock",    STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    349                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetHyperAssertion,      STAMTYPE_COUNTER, "/VMM/GCRet/CallHost/HyperAssert", STAMUNIT_OCCURENCES, "Number of VINF_VMM_CALL_HOST returns.");
    350                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPATMDuplicateFn,     STAMTYPE_COUNTER, "/VMM/GCRet/PATMDuplicateFn",     STAMUNIT_OCCURENCES, "Number of VINF_PATM_DUPLICATE_FUNCTION returns.");
    351                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPGMChangeMode,       STAMTYPE_COUNTER, "/VMM/GCRet/PGMChangeMode",       STAMUNIT_OCCURENCES, "Number of VINF_PGM_CHANGE_MODE returns.");
    352                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetEmulHlt,             STAMTYPE_COUNTER, "/VMM/GCRet/EmulHlt",             STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_EMULATE_INSTR_HLT returns.");
    353                     STAM_REG(pVM, &pVM->vmm.s.StatGCRetPendingRequest,      STAMTYPE_COUNTER, "/VMM/GCRet/PendingRequest",      STAMUNIT_OCCURENCES, "Number of VINF_EM_PENDING_REQUEST returns.");
     301                    vmmR3InitRegisterStats(pVM);
    354302
    355303                    return VINF_SUCCESS;
     
    502450    pVM->vmm.s.pvGCCoreCode = 0;
    503451    return rc;
     452}
     453
     454
     455/**
     456 * VMMR3Init worker that register the statistics with STAM.
     457 *
     458 * @param   pVM         The shared VM structure.
     459 */
     460static void vmmR3InitRegisterStats(PVM pVM)
     461{
     462    /*
     463     * Statistics.
     464     */
     465    STAM_REG(pVM, &pVM->vmm.s.StatRunRC,                    STAMTYPE_COUNTER, "/VMM/RunRC",                     STAMUNIT_OCCURENCES, "Number of context switches.");
     466    STAM_REG(pVM, &pVM->vmm.s.StatRZRetNormal,              STAMTYPE_COUNTER, "/VMM/RZRet/Normal",              STAMUNIT_OCCURENCES, "Number of VINF_SUCCESS returns.");
     467    STAM_REG(pVM, &pVM->vmm.s.StatRZRetInterrupt,           STAMTYPE_COUNTER, "/VMM/RZRet/Interrupt",           STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT returns.");
     468    STAM_REG(pVM, &pVM->vmm.s.StatRZRetInterruptHyper,      STAMTYPE_COUNTER, "/VMM/RZRet/InterruptHyper",      STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT_HYPER returns.");
     469    STAM_REG(pVM, &pVM->vmm.s.StatRZRetGuestTrap,           STAMTYPE_COUNTER, "/VMM/RZRet/GuestTrap",           STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_GUEST_TRAP returns.");
     470    STAM_REG(pVM, &pVM->vmm.s.StatRZRetRingSwitch,          STAMTYPE_COUNTER, "/VMM/RZRet/RingSwitch",          STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_RING_SWITCH returns.");
     471    STAM_REG(pVM, &pVM->vmm.s.StatRZRetRingSwitchInt,       STAMTYPE_COUNTER, "/VMM/RZRet/RingSwitchInt",       STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_RING_SWITCH_INT returns.");
     472    STAM_REG(pVM, &pVM->vmm.s.StatRZRetExceptionPrivilege,  STAMTYPE_COUNTER, "/VMM/RZRet/ExceptionPrivilege",  STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_EXCEPTION_PRIVILEGED returns.");
     473    STAM_REG(pVM, &pVM->vmm.s.StatRZRetStaleSelector,       STAMTYPE_COUNTER, "/VMM/RZRet/StaleSelector",       STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_STALE_SELECTOR returns.");
     474    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIRETTrap,            STAMTYPE_COUNTER, "/VMM/RZRet/IRETTrap",            STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_IRET_TRAP returns.");
     475    STAM_REG(pVM, &pVM->vmm.s.StatRZRetEmulate,             STAMTYPE_COUNTER, "/VMM/RZRet/Emulate",             STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION returns.");
     476    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchEmulate,        STAMTYPE_COUNTER, "/VMM/RZRet/PatchEmulate",        STAMUNIT_OCCURENCES, "Number of VINF_PATCH_EMULATE_INSTR returns.");
     477    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIORead,              STAMTYPE_COUNTER, "/VMM/RZRet/IORead",              STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_IOPORT_READ returns.");
     478    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIOWrite,             STAMTYPE_COUNTER, "/VMM/RZRet/IOWrite",             STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_IOPORT_WRITE returns.");
     479    STAM_REG(pVM, &pVM->vmm.s.StatRZRetMMIORead,            STAMTYPE_COUNTER, "/VMM/RZRet/MMIORead",            STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_READ returns.");
     480    STAM_REG(pVM, &pVM->vmm.s.StatRZRetMMIOWrite,           STAMTYPE_COUNTER, "/VMM/RZRet/MMIOWrite",           STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_WRITE returns.");
     481    STAM_REG(pVM, &pVM->vmm.s.StatRZRetMMIOReadWrite,       STAMTYPE_COUNTER, "/VMM/RZRet/MMIOReadWrite",       STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_READ_WRITE returns.");
     482    STAM_REG(pVM, &pVM->vmm.s.StatRZRetMMIOPatchRead,       STAMTYPE_COUNTER, "/VMM/RZRet/MMIOPatchRead",       STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_PATCH_READ returns.");
     483    STAM_REG(pVM, &pVM->vmm.s.StatRZRetMMIOPatchWrite,      STAMTYPE_COUNTER, "/VMM/RZRet/MMIOPatchWrite",      STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_MMIO_PATCH_WRITE returns.");
     484    STAM_REG(pVM, &pVM->vmm.s.StatRZRetLDTFault,            STAMTYPE_COUNTER, "/VMM/RZRet/LDTFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_GDT_FAULT returns.");
     485    STAM_REG(pVM, &pVM->vmm.s.StatRZRetGDTFault,            STAMTYPE_COUNTER, "/VMM/RZRet/GDTFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_LDT_FAULT returns.");
     486    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIDTFault,            STAMTYPE_COUNTER, "/VMM/RZRet/IDTFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_IDT_FAULT returns.");
     487    STAM_REG(pVM, &pVM->vmm.s.StatRZRetTSSFault,            STAMTYPE_COUNTER, "/VMM/RZRet/TSSFault",            STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_TSS_FAULT returns.");
     488    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPDFault,             STAMTYPE_COUNTER, "/VMM/RZRet/PDFault",             STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION_PD_FAULT returns.");
     489    STAM_REG(pVM, &pVM->vmm.s.StatRZRetCSAMTask,            STAMTYPE_COUNTER, "/VMM/RZRet/CSAMTask",            STAMUNIT_OCCURENCES, "Number of VINF_CSAM_PENDING_ACTION returns.");
     490    STAM_REG(pVM, &pVM->vmm.s.StatRZRetSyncCR3,             STAMTYPE_COUNTER, "/VMM/RZRet/SyncCR",              STAMUNIT_OCCURENCES, "Number of VINF_PGM_SYNC_CR3 returns.");
     491    STAM_REG(pVM, &pVM->vmm.s.StatRZRetMisc,                STAMTYPE_COUNTER, "/VMM/RZRet/Misc",                STAMUNIT_OCCURENCES, "Number of misc returns.");
     492    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchInt3,           STAMTYPE_COUNTER, "/VMM/RZRet/PatchInt3",           STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_INT3 returns.");
     493    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchPF,             STAMTYPE_COUNTER, "/VMM/RZRet/PatchPF",             STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_TRAP_PF returns.");
     494    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchGP,             STAMTYPE_COUNTER, "/VMM/RZRet/PatchGP",             STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_TRAP_GP returns.");
     495    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchIretIRQ,        STAMTYPE_COUNTER, "/VMM/RZRet/PatchIret",           STAMUNIT_OCCURENCES, "Number of VINF_PATM_PENDING_IRQ_AFTER_IRET returns.");
     496    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPageOverflow,        STAMTYPE_COUNTER, "/VMM/RZRet/InvlpgOverflow",      STAMUNIT_OCCURENCES, "Number of VERR_REM_FLUSHED_PAGES_OVERFLOW returns.");
     497    STAM_REG(pVM, &pVM->vmm.s.StatRZRetRescheduleREM,       STAMTYPE_COUNTER, "/VMM/RZRet/ScheduleREM",         STAMUNIT_OCCURENCES, "Number of VINF_EM_RESCHEDULE_REM returns.");
     498    STAM_REG(pVM, &pVM->vmm.s.StatRZRetToR3,                STAMTYPE_COUNTER, "/VMM/RZRet/ToR3",                STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_TO_R3 returns.");
     499    STAM_REG(pVM, &pVM->vmm.s.StatRZRetTimerPending,        STAMTYPE_COUNTER, "/VMM/RZRet/TimerPending",        STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_TIMER_PENDING returns.");
     500    STAM_REG(pVM, &pVM->vmm.s.StatRZRetInterruptPending,    STAMTYPE_COUNTER, "/VMM/RZRet/InterruptPending",    STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT_PENDING returns.");
     501    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPATMDuplicateFn,     STAMTYPE_COUNTER, "/VMM/RZRet/PATMDuplicateFn",     STAMUNIT_OCCURENCES, "Number of VINF_PATM_DUPLICATE_FUNCTION returns.");
     502    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPGMChangeMode,       STAMTYPE_COUNTER, "/VMM/RZRet/PGMChangeMode",       STAMUNIT_OCCURENCES, "Number of VINF_PGM_CHANGE_MODE returns.");
     503    STAM_REG(pVM, &pVM->vmm.s.StatRZRetEmulHlt,             STAMTYPE_COUNTER, "/VMM/RZRet/EmulHlt",             STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_EMULATE_INSTR_HLT returns.");
     504    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPendingRequest,      STAMTYPE_COUNTER, "/VMM/RZRet/PendingRequest",      STAMUNIT_OCCURENCES, "Number of VINF_EM_PENDING_REQUEST returns.");
     505
     506    STAM_REG(pVM, &pVM->vmm.s.StatRZRetCallHost,            STAMTYPE_COUNTER, "/VMM/RZCallR3/Misc",             STAMUNIT_OCCURENCES, "Number of Other ring-3 calls.");
     507    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPDMLock,            STAMTYPE_COUNTER, "/VMM/RZCallR3/PDMLock",          STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PDM_LOCK calls.");
     508    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPDMQueueFlush,      STAMTYPE_COUNTER, "/VMM/RZCallR3/PDMQueueFlush",    STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PDM_QUEUE_FLUSH calls.");
     509    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPGMLock,            STAMTYPE_COUNTER, "/VMM/RZCallR3/PGMLock",          STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PGM_LOCK calls.");
     510    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPGMPoolGrow,        STAMTYPE_COUNTER, "/VMM/RZCallR3/PGMPoolGrow",      STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PGM_POOL_GROW calls.");
     511    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPGMMapChunk,        STAMTYPE_COUNTER, "/VMM/RZCallR3/PGMMapChunk",      STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PGM_MAP_CHUNK calls.");
     512    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPGMAllocHandy,      STAMTYPE_COUNTER, "/VMM/RZCallR3/PGMAllocHandy",    STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PGM_ALLOCATE_HANDY_PAGES calls.");
     513#ifndef VBOX_WITH_NEW_PHYS_CODE
     514    STAM_REG(pVM, &pVM->vmm.s.StatRZCallPGMGrowRAM,         STAMTYPE_COUNTER, "/VMM/RZCallR3/PGMGrowRAM",       STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_PGM_RAM_GROW_RANGE calls.");
     515#endif
     516    STAM_REG(pVM, &pVM->vmm.s.StatRZCallRemReplay,          STAMTYPE_COUNTER, "/VMM/RZCallR3/REMReplay",        STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_REM_REPLAY_HANDLER_NOTIFICATIONS calls.");
     517    STAM_REG(pVM, &pVM->vmm.s.StatRZCallLogFlush,           STAMTYPE_COUNTER, "/VMM/RZCallR3/VMMLogFlush",      STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_VMM_LOGGER_FLUSH calls.");
     518    STAM_REG(pVM, &pVM->vmm.s.StatRZCallVMSetError,         STAMTYPE_COUNTER, "/VMM/RZCallR3/VMSetError",       STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_VM_SET_ERROR calls.");
     519    STAM_REG(pVM, &pVM->vmm.s.StatRZCallVMSetRuntimeError,  STAMTYPE_COUNTER, "/VMM/RZCallR3/VMRuntimeError",   STAMUNIT_OCCURENCES, "Number of VMMCALLHOST_VM_SET_RUNTIME_ERROR calls.");
    504520}
    505521
     
    22112227         * Cancel the longjmp operation that's in progress.
    22122228         */
    2213         case VMMCALLHOST_VM_R0_HYPER_ASSERTION:
     2229        case VMMCALLHOST_VM_R0_ASSERTION:
    22142230            pVM->vmm.s.enmCallHostOperation = VMMCALLHOST_INVALID;
    22152231            pVM->vmm.s.CallHostR0JmpBuf.fInRing3Call = false;
     
    22212237            LogRel((pVM->vmm.s.szRing0AssertMsg1));
    22222238            LogRel((pVM->vmm.s.szRing0AssertMsg2));
    2223             return VINF_EM_DBG_HYPER_ASSERTION;
     2239            return VINF_EM_DBG_HYPER_ASSERTION; /** @todo rename this. */
    22242240
    22252241        default:
  • trunk/src/VBox/VMM/VMMInternal.h

    r13700 r13701  
    7878
    7979/**
    80  * Switcher function, GC to HC.
     80 * Switcher function, RC to HC.
    8181 *
    8282 * @param   rc          VBox status code.
    8383 */
    84 typedef DECLASMTYPE(void) FNVMMSWITCHERGC(int rc);
     84typedef DECLASMTYPE(void) FNVMMSWITCHERRC(int rc);
    8585/** Pointer to switcher function. */
    86 typedef FNVMMSWITCHERGC *PFNVMMSWITCHERGC;
     86typedef FNVMMSWITCHERRC *PFNVMMSWITCHERRC;
    8787
    8888
     
    116116     * @{ */
    117117#if HC_ARCH_BITS == 32
    118     uint32_t    ebx;
    119     uint32_t    esi;
    120     uint32_t    edi;
    121     uint32_t    ebp;
    122     uint32_t    esp;
    123     uint32_t    eip;
    124     uint32_t    u32Padding;
     118    uint32_t                    ebx;
     119    uint32_t                    esi;
     120    uint32_t                    edi;
     121    uint32_t                    ebp;
     122    uint32_t                    esp;
     123    uint32_t                    eip;
     124    uint32_t                    u32Padding;
    125125#endif
    126126#if HC_ARCH_BITS == 64
    127     uint64_t    rbx;
     127    uint64_t                    rbx;
    128128# ifdef RT_OS_WINDOWS
    129     uint64_t    rsi;
    130     uint64_t    rdi;
     129    uint64_t                    rsi;
     130    uint64_t                    rdi;
    131131# endif
    132     uint64_t    rbp;
    133     uint64_t    r12;
    134     uint64_t    r13;
    135     uint64_t    r14;
    136     uint64_t    r15;
    137     uint64_t    rsp;
    138     uint64_t    rip;
     132    uint64_t                    rbp;
     133    uint64_t                    r12;
     134    uint64_t                    r13;
     135    uint64_t                    r14;
     136    uint64_t                    r15;
     137    uint64_t                    rsp;
     138    uint64_t                    rip;
    139139#endif
    140140    /** @} */
    141141
    142142    /** Flag that indicates that we've done a ring-3 call. */
    143     bool        fInRing3Call;
     143    bool                        fInRing3Call;
    144144    /** The number of bytes we've saved. */
    145     uint32_t    cbSavedStack;
     145    uint32_t                    cbSavedStack;
    146146    /** Pointer to the buffer used to save the stack.
    147147     * This is assumed to be 8KB. */
    148     RTR0PTR     pvSavedStack;
     148    RTR0PTR                     pvSavedStack;
    149149    /** Esp we we match against esp on resume to make sure the stack wasn't relocated. */
    150     RTHCUINTREG SpCheck;
     150    RTHCUINTREG                 SpCheck;
    151151    /** The esp we should resume execution with after the restore. */
    152     RTHCUINTREG SpResume;
    153 } VMMR0JMPBUF, *PVMMR0JMPBUF;
     152    RTHCUINTREG                 SpResume;
     153} VMMR0JMPBUF;
     154/** Pointer to a ring-0 jump buffer. */
     155typedef VMMR0JMPBUF *PVMMR0JMPBUF;
    154156
    155157
     
    192194    R0PTRTYPE(PFNVMMSWITCHERHC) pfnR0HostToGuest;
    193195    /** Guest to host switcher entry point. */
    194     RCPTRTYPE(PFNVMMSWITCHERGC) pfnGCGuestToHost;
     196    RCPTRTYPE(PFNVMMSWITCHERRC) pfnGCGuestToHost;
    195197    /** Call Trampoline. See vmmGCCallTrampoline(). */
    196198    RTGCPTR32                   pfnGCCallTrampoline;
     
    255257
    256258    /** @name CallHost
     259     * @todo SMP: per vCPU
    257260     * @{ */
    258261    /** The pending operation. */
     
    274277
    275278    /** Number of VMMR0_DO_RUN_GC calls. */
    276     STAMCOUNTER                 StatRunGC;
    277 
    278     /** Statistics for each of the GC return codes.
     279    STAMCOUNTER                 StatRunRC;
     280
     281    /** Statistics for each of the RC/R0 return codes.
    279282     * @{ */
    280     STAMCOUNTER                 StatGCRetNormal;
    281     STAMCOUNTER                 StatGCRetInterrupt;
    282     STAMCOUNTER                 StatGCRetInterruptHyper;
    283     STAMCOUNTER                 StatGCRetGuestTrap;
    284     STAMCOUNTER                 StatGCRetRingSwitch;
    285     STAMCOUNTER                 StatGCRetRingSwitchInt;
    286     STAMCOUNTER                 StatGCRetExceptionPrivilege;
    287     STAMCOUNTER                 StatGCRetStaleSelector;
    288     STAMCOUNTER                 StatGCRetIRETTrap;
    289     STAMCOUNTER                 StatGCRetEmulate;
    290     STAMCOUNTER                 StatGCRetPatchEmulate;
    291     STAMCOUNTER                 StatGCRetIORead;
    292     STAMCOUNTER                 StatGCRetIOWrite;
    293     STAMCOUNTER                 StatGCRetMMIORead;
    294     STAMCOUNTER                 StatGCRetMMIOWrite;
    295     STAMCOUNTER                 StatGCRetMMIOPatchRead;
    296     STAMCOUNTER                 StatGCRetMMIOPatchWrite;
    297     STAMCOUNTER                 StatGCRetMMIOReadWrite;
    298     STAMCOUNTER                 StatGCRetLDTFault;
    299     STAMCOUNTER                 StatGCRetGDTFault;
    300     STAMCOUNTER                 StatGCRetIDTFault;
    301     STAMCOUNTER                 StatGCRetTSSFault;
    302     STAMCOUNTER                 StatGCRetPDFault;
    303     STAMCOUNTER                 StatGCRetCSAMTask;
    304     STAMCOUNTER                 StatGCRetSyncCR3;
    305     STAMCOUNTER                 StatGCRetMisc;
    306     STAMCOUNTER                 StatGCRetPatchInt3;
    307     STAMCOUNTER                 StatGCRetPatchPF;
    308     STAMCOUNTER                 StatGCRetPatchGP;
    309     STAMCOUNTER                 StatGCRetPatchIretIRQ;
    310     STAMCOUNTER                 StatGCRetPageOverflow;
    311     STAMCOUNTER                 StatGCRetRescheduleREM;
    312     STAMCOUNTER                 StatGCRetToR3;
    313     STAMCOUNTER                 StatGCRetTimerPending;
    314     STAMCOUNTER                 StatGCRetInterruptPending;
    315     STAMCOUNTER                 StatGCRetCallHost;
    316     STAMCOUNTER                 StatGCRetPATMDuplicateFn;
    317     STAMCOUNTER                 StatGCRetPGMChangeMode;
    318     STAMCOUNTER                 StatGCRetEmulHlt;
    319     STAMCOUNTER                 StatGCRetPendingRequest;
    320     STAMCOUNTER                 StatGCRetPGMGrowRAM;
    321     STAMCOUNTER                 StatGCRetPDMLock;
    322     STAMCOUNTER                 StatGCRetHyperAssertion;
    323     STAMCOUNTER                 StatGCRetLogFlush;
    324     STAMCOUNTER                 StatGCRetPDMQueueFlush;
    325     STAMCOUNTER                 StatGCRetPGMPoolGrow;
    326     STAMCOUNTER                 StatGCRetRemReplay;
    327     STAMCOUNTER                 StatGCRetVMSetError;
    328     STAMCOUNTER                 StatGCRetVMSetRuntimeError;
    329     STAMCOUNTER                 StatGCRetPGMLock;
     283    STAMCOUNTER                 StatRZRetNormal;
     284    STAMCOUNTER                 StatRZRetInterrupt;
     285    STAMCOUNTER                 StatRZRetInterruptHyper;
     286    STAMCOUNTER                 StatRZRetGuestTrap;
     287    STAMCOUNTER                 StatRZRetRingSwitch;
     288    STAMCOUNTER                 StatRZRetRingSwitchInt;
     289    STAMCOUNTER                 StatRZRetExceptionPrivilege;
     290    STAMCOUNTER                 StatRZRetStaleSelector;
     291    STAMCOUNTER                 StatRZRetIRETTrap;
     292    STAMCOUNTER                 StatRZRetEmulate;
     293    STAMCOUNTER                 StatRZRetPatchEmulate;
     294    STAMCOUNTER                 StatRZRetIORead;
     295    STAMCOUNTER                 StatRZRetIOWrite;
     296    STAMCOUNTER                 StatRZRetMMIORead;
     297    STAMCOUNTER                 StatRZRetMMIOWrite;
     298    STAMCOUNTER                 StatRZRetMMIOPatchRead;
     299    STAMCOUNTER                 StatRZRetMMIOPatchWrite;
     300    STAMCOUNTER                 StatRZRetMMIOReadWrite;
     301    STAMCOUNTER                 StatRZRetLDTFault;
     302    STAMCOUNTER                 StatRZRetGDTFault;
     303    STAMCOUNTER                 StatRZRetIDTFault;
     304    STAMCOUNTER                 StatRZRetTSSFault;
     305    STAMCOUNTER                 StatRZRetPDFault;
     306    STAMCOUNTER                 StatRZRetCSAMTask;
     307    STAMCOUNTER                 StatRZRetSyncCR3;
     308    STAMCOUNTER                 StatRZRetMisc;
     309    STAMCOUNTER                 StatRZRetPatchInt3;
     310    STAMCOUNTER                 StatRZRetPatchPF;
     311    STAMCOUNTER                 StatRZRetPatchGP;
     312    STAMCOUNTER                 StatRZRetPatchIretIRQ;
     313    STAMCOUNTER                 StatRZRetPageOverflow;
     314    STAMCOUNTER                 StatRZRetRescheduleREM;
     315    STAMCOUNTER                 StatRZRetToR3;
     316    STAMCOUNTER                 StatRZRetTimerPending;
     317    STAMCOUNTER                 StatRZRetInterruptPending;
     318    STAMCOUNTER                 StatRZRetCallHost;
     319    STAMCOUNTER                 StatRZRetPATMDuplicateFn;
     320    STAMCOUNTER                 StatRZRetPGMChangeMode;
     321    STAMCOUNTER                 StatRZRetEmulHlt;
     322    STAMCOUNTER                 StatRZRetPendingRequest;
     323#ifndef VBOX_WITH_NEW_PHYS_CODE
     324    STAMCOUNTER                 StatRZCallPGMGrowRAM;
     325#endif
     326    STAMCOUNTER                 StatRZCallPDMLock;
     327    STAMCOUNTER                 StatRZCallLogFlush;
     328    STAMCOUNTER                 StatRZCallPDMQueueFlush;
     329    STAMCOUNTER                 StatRZCallPGMPoolGrow;
     330    STAMCOUNTER                 StatRZCallPGMMapChunk;
     331    STAMCOUNTER                 StatRZCallPGMAllocHandy;
     332    STAMCOUNTER                 StatRZCallRemReplay;
     333    STAMCOUNTER                 StatRZCallVMSetError;
     334    STAMCOUNTER                 StatRZCallVMSetRuntimeError;
     335    STAMCOUNTER                 StatRZCallPGMLock;
    330336    /** @} */
    331 
    332 
    333 } VMM, *PVMM;
     337} VMM;
     338/** Pointer to VMM. */
     339typedef VMM *PVMM;
    334340
    335341
     
    474480
    475481#endif /* IN_RING0 */
    476 
    477 
    478482#ifdef IN_GC
     483
    479484/**
    480485 * Internal GC logger worker: Logger wrapper.
     
    494499 * @remark  This function must be exported!
    495500 */
    496 VMMRCDECL(int) vmmGCLoggerFlush(PRTLOGGERRC pLogger);
     501VMMRCDECL(int)  vmmGCLoggerFlush(PRTLOGGERRC pLogger);
    497502
    498503/** @name Trap testcases and related labels.
    499504 * @{ */
    500 DECLASM(void) vmmGCEnableWP(void);
    501 DECLASM(void) vmmGCDisableWP(void);
    502 DECLASM(int) vmmGCTestTrap3(void);
    503 DECLASM(int) vmmGCTestTrap8(void);
    504 DECLASM(int) vmmGCTestTrap0d(void);
    505 DECLASM(int) vmmGCTestTrap0e(void);
    506 DECLASM(int) vmmGCTestTrap0e_FaultEIP(void); /**< a label */
    507 DECLASM(int) vmmGCTestTrap0e_ResumeEIP(void); /**< a label */
     505DECLASM(void)   vmmGCEnableWP(void);
     506DECLASM(void)   vmmGCDisableWP(void);
     507DECLASM(int)    vmmGCTestTrap3(void);
     508DECLASM(int)    vmmGCTestTrap8(void);
     509DECLASM(int)    vmmGCTestTrap0d(void);
     510DECLASM(int)    vmmGCTestTrap0e(void);
     511DECLASM(int)    vmmGCTestTrap0e_FaultEIP(void); /**< a label */
     512DECLASM(int)    vmmGCTestTrap0e_ResumeEIP(void); /**< a label */
    508513/** @} */
    509514
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r13517 r13701  
    296296    {
    297297        case VINF_SUCCESS:
    298             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetNormal);
     298            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetNormal);
    299299            break;
    300300        case VINF_EM_RAW_INTERRUPT:
    301             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetInterrupt);
     301            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetInterrupt);
    302302            break;
    303303        case VINF_EM_RAW_INTERRUPT_HYPER:
    304             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetInterruptHyper);
     304            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetInterruptHyper);
    305305            break;
    306306        case VINF_EM_RAW_GUEST_TRAP:
    307             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetGuestTrap);
     307            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetGuestTrap);
    308308            break;
    309309        case VINF_EM_RAW_RING_SWITCH:
    310             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetRingSwitch);
     310            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetRingSwitch);
    311311            break;
    312312        case VINF_EM_RAW_RING_SWITCH_INT:
    313             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetRingSwitchInt);
     313            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetRingSwitchInt);
    314314            break;
    315315        case VINF_EM_RAW_EXCEPTION_PRIVILEGED:
    316             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetExceptionPrivilege);
     316            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetExceptionPrivilege);
    317317            break;
    318318        case VINF_EM_RAW_STALE_SELECTOR:
    319             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetStaleSelector);
     319            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetStaleSelector);
    320320            break;
    321321        case VINF_EM_RAW_IRET_TRAP:
    322             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetIRETTrap);
     322            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetIRETTrap);
    323323            break;
    324324        case VINF_IOM_HC_IOPORT_READ:
    325             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetIORead);
     325            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetIORead);
    326326            break;
    327327        case VINF_IOM_HC_IOPORT_WRITE:
    328             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetIOWrite);
     328            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetIOWrite);
    329329            break;
    330330        case VINF_IOM_HC_MMIO_READ:
    331             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetMMIORead);
     331            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetMMIORead);
    332332            break;
    333333        case VINF_IOM_HC_MMIO_WRITE:
    334             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetMMIOWrite);
     334            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetMMIOWrite);
    335335            break;
    336336        case VINF_IOM_HC_MMIO_READ_WRITE:
    337             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetMMIOReadWrite);
     337            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetMMIOReadWrite);
    338338            break;
    339339        case VINF_PATM_HC_MMIO_PATCH_READ:
    340             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetMMIOPatchRead);
     340            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetMMIOPatchRead);
    341341            break;
    342342        case VINF_PATM_HC_MMIO_PATCH_WRITE:
    343             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetMMIOPatchWrite);
     343            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetMMIOPatchWrite);
    344344            break;
    345345        case VINF_EM_RAW_EMULATE_INSTR:
    346             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetEmulate);
     346            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetEmulate);
    347347            break;
    348348        case VINF_PATCH_EMULATE_INSTR:
    349             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPatchEmulate);
     349            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPatchEmulate);
    350350            break;
    351351        case VINF_EM_RAW_EMULATE_INSTR_LDT_FAULT:
    352             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetLDTFault);
     352            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetLDTFault);
    353353            break;
    354354        case VINF_EM_RAW_EMULATE_INSTR_GDT_FAULT:
    355             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetGDTFault);
     355            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetGDTFault);
    356356            break;
    357357        case VINF_EM_RAW_EMULATE_INSTR_IDT_FAULT:
    358             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetIDTFault);
     358            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetIDTFault);
    359359            break;
    360360        case VINF_EM_RAW_EMULATE_INSTR_TSS_FAULT:
    361             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetTSSFault);
     361            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetTSSFault);
    362362            break;
    363363        case VINF_EM_RAW_EMULATE_INSTR_PD_FAULT:
    364             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPDFault);
     364            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPDFault);
    365365            break;
    366366        case VINF_CSAM_PENDING_ACTION:
    367             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetCSAMTask);
     367            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetCSAMTask);
    368368            break;
    369369        case VINF_PGM_SYNC_CR3:
    370             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetSyncCR3);
     370            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetSyncCR3);
    371371            break;
    372372        case VINF_PATM_PATCH_INT3:
    373             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPatchInt3);
     373            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPatchInt3);
    374374            break;
    375375        case VINF_PATM_PATCH_TRAP_PF:
    376             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPatchPF);
     376            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPatchPF);
    377377            break;
    378378        case VINF_PATM_PATCH_TRAP_GP:
    379             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPatchGP);
     379            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPatchGP);
    380380            break;
    381381        case VINF_PATM_PENDING_IRQ_AFTER_IRET:
    382             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPatchIretIRQ);
     382            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPatchIretIRQ);
    383383            break;
    384384        case VERR_REM_FLUSHED_PAGES_OVERFLOW:
    385             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPageOverflow);
     385            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPageOverflow);
    386386            break;
    387387        case VINF_EM_RESCHEDULE_REM:
    388             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetRescheduleREM);
     388            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetRescheduleREM);
    389389            break;
    390390        case VINF_EM_RAW_TO_R3:
    391             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetToR3);
     391            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetToR3);
    392392            break;
    393393        case VINF_EM_RAW_TIMER_PENDING:
    394             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetTimerPending);
     394            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetTimerPending);
    395395            break;
    396396        case VINF_EM_RAW_INTERRUPT_PENDING:
    397             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetInterruptPending);
     397            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetInterruptPending);
    398398            break;
    399399        case VINF_VMM_CALL_HOST:
     
    401401            {
    402402                case VMMCALLHOST_PDM_LOCK:
    403                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPDMLock);
     403                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPDMLock);
    404404                    break;
    405405                case VMMCALLHOST_PDM_QUEUE_FLUSH:
    406                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPDMQueueFlush);
     406                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPDMQueueFlush);
    407407                    break;
    408408                case VMMCALLHOST_PGM_POOL_GROW:
    409                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPGMPoolGrow);
     409                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPGMPoolGrow);
    410410                    break;
    411411                case VMMCALLHOST_PGM_LOCK:
    412                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPGMLock);
     412                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPGMLock);
    413413                    break;
     414                case VMMCALLHOST_PGM_MAP_CHUNK:
     415                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPGMMapChunk);
     416                    break;
     417                case VMMCALLHOST_PGM_ALLOCATE_HANDY_PAGES:
     418                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPGMAllocHandy);
     419                    break;
     420#ifndef VBOX_WITH_NEW_PHYS_CODE
     421                case VMMCALLHOST_PGM_RAM_GROW_RANGE:
     422                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallPGMGrowRAM);
     423                    break;
     424#endif
    414425                case VMMCALLHOST_REM_REPLAY_HANDLER_NOTIFICATIONS:
    415                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetRemReplay);
    416                     break;
    417                 case VMMCALLHOST_PGM_RAM_GROW_RANGE:
    418                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPGMGrowRAM);
     426                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallRemReplay);
    419427                    break;
    420428                case VMMCALLHOST_VMM_LOGGER_FLUSH:
    421                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetLogFlush);
     429                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallLogFlush);
    422430                    break;
    423431                case VMMCALLHOST_VM_SET_ERROR:
    424                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetVMSetError);
     432                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallVMSetError);
    425433                    break;
    426434                case VMMCALLHOST_VM_SET_RUNTIME_ERROR:
    427                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetVMSetRuntimeError);
     435                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZCallVMSetRuntimeError);
    428436                    break;
    429                 case VMMCALLHOST_VM_R0_HYPER_ASSERTION:
    430                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetHyperAssertion);
    431                     break;
     437                case VMMCALLHOST_VM_R0_ASSERTION:
    432438                default:
    433                     STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetCallHost);
     439                    STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetCallHost);
    434440                    break;
    435441            }
    436442            break;
    437443        case VINF_PATM_DUPLICATE_FUNCTION:
    438             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPATMDuplicateFn);
     444            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPATMDuplicateFn);
    439445            break;
    440446        case VINF_PGM_CHANGE_MODE:
    441             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPGMChangeMode);
     447            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPGMChangeMode);
    442448            break;
    443449        case VINF_EM_RAW_EMULATE_INSTR_HLT:
    444             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetEmulHlt);
     450            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetEmulHlt);
    445451            break;
    446452        case VINF_EM_PENDING_REQUEST:
    447             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetPendingRequest);
     453            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPendingRequest);
    448454            break;
    449455        default:
    450             STAM_COUNTER_INC(&pVM->vmm.s.StatGCRetMisc);
     456            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetMisc);
    451457            break;
    452458    }
     
    481487                return VERR_NOT_SUPPORTED;
    482488
    483             STAM_COUNTER_INC(&pVM->vmm.s.StatRunGC);
     489            STAM_COUNTER_INC(&pVM->vmm.s.StatRunRC);
    484490            register int rc;
    485491            pVM->vmm.s.iLastGCRc = rc = pVM->vmm.s.pfnR0HostToGuest(pVM);
     
    601607
    602608#ifdef VBOX_WITH_STATISTICS
    603                 STAM_COUNTER_INC(&pVM->vmm.s.StatRunGC);
     609                STAM_COUNTER_INC(&pVM->vmm.s.StatRunRC);
    604610                vmmR0RecordRC(pVM, rc);
    605611#endif
     
    624630            int rc;
    625631
    626             STAM_COUNTER_INC(&pVM->vmm.s.StatRunGC);
     632            STAM_COUNTER_INC(&pVM->vmm.s.StatRunRC);
    627633
    628634#ifndef RT_OS_WINDOWS /** @todo check other hosts */
     
    11341140#endif
    11351141        {
    1136             int rc = VMMR0CallHost(pVM, VMMCALLHOST_VM_R0_HYPER_ASSERTION, 0);
     1142            int rc = VMMR0CallHost(pVM, VMMCALLHOST_VM_R0_ASSERTION, 0);
    11371143            return RT_FAILURE_NP(rc);
    11381144        }
  • trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp

    r13698 r13701  
    854854    GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpCheck);
    855855    GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpResume);
    856     GEN_CHECK_OFF(VMM, StatRunGC);
    857     GEN_CHECK_OFF(VMM, StatGCRetPGMLock);
     856    GEN_CHECK_OFF(VMM, StatRunRC);
     857    GEN_CHECK_OFF(VMM, StatRZCallPGMLock);
    858858
    859859    GEN_CHECK_SIZE(RTPINGPONG);
  • trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp

    r13413 r13701  
    169169    CHECK_MEMBER_ALIGNMENT(VM, vmm.s.CritSectVMLock, 8);
    170170    CHECK_MEMBER_ALIGNMENT(VM, vmm.s.CallHostR0JmpBuf, 8);
    171     CHECK_MEMBER_ALIGNMENT(VM, vmm.s.StatRunGC, 8);
     171    CHECK_MEMBER_ALIGNMENT(VM, vmm.s.StatRunRC, 8);
    172172    CHECK_MEMBER_ALIGNMENT(VM, StatTotalQemuToGC, 8);
    173173    CHECK_MEMBER_ALIGNMENT(VM, rem.s.StatsInQEMU, 8);
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