VirtualBox

Changeset 624 in vbox


Ignore:
Timestamp:
Feb 5, 2007 10:03:11 AM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
18253
Message:

More statistics.

Location:
trunk/src/VBox/VMM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/TRPM.cpp

    r348 r624  
    510510    STAM_REG(pVM, &pVM->trpm.s.StatForwardFailGC,           STAMTYPE_COUNTER, "/TRPM/ForwardRaw/Fail/GC",             STAMUNIT_OCCURENCES, "Failure to forward interrupt in raw mode.");
    511511    STAM_REG(pVM, &pVM->trpm.s.StatForwardFailHC,           STAMTYPE_COUNTER, "/TRPM/ForwardRaw/Fail/HC",             STAMUNIT_OCCURENCES, "Failure to forward interrupt in raw mode.");
     512    STAM_REG(pVM, &pVM->trpm.s.StatForwardProfGC,       STAMTYPE_PROFILE_ADV, "/TRPM/ForwardRaw/Prof/GC",         STAMUNIT_TICKS_PER_CALL, "Profiling TRPMForwardTrap.");
     513    STAM_REG(pVM, &pVM->trpm.s.StatForwardProfHC,       STAMTYPE_PROFILE_ADV, "/TRPM/ForwardRaw/Prof/HC",         STAMUNIT_TICKS_PER_CALL, "Profiling TRPMForwardTrap.");
    512514
    513515    /*
  • trunk/src/VBox/VMM/TRPMInternal.h

    r415 r624  
    157157    STAMCOUNTER     StatForwardFailHC;
    158158
     159    STAMPROFILEADV  StatForwardProfGC;
     160    STAMPROFILEADV  StatForwardProfHC;
     161
    159162    /* R3: Statistics for interrupt handlers (allocated on the hypervisor heap). */
    160163    R3PTRTYPE(PSTAMCOUNTER) paStatForwardedIRQR3;
  • trunk/src/VBox/VMM/TRPMInternal.mac

    r347 r624  
    6464    .StatForwardFailHC        resb STAMCOUNTER_size
    6565
     66    .StatForwardProfGC        resb STAMPROFILEADV_size
     67    .StatForwardProfHC        resb STAMPROFILEADV_size
     68
    6669    .paStatForwardedIRQR3  RTR3PTR_RES 1
    6770    .paStatForwardedIRQR0  RTR0PTR_RES 1
  • trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp

    r98 r624  
    359359TRPMDECL(int) TRPMForwardTrap(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t iGate, uint32_t opsize, TRPMERRORCODE enmError, TRPMEVENT enmType)
    360360{
     361#ifdef TRPM_FORWARD_TRAPS_IN_GC
    361362    X86EFLAGS eflags;
    362363
    363 #ifdef TRPM_FORWARD_TRAPS_IN_GC
     364    STAM_PROFILE_ADV_START(CTXSUFF(&pVM->trpm.s.StatForwardProf), a);
     365
    364366    Log(("TRPMForwardTrap: eip=%VGv iGate=%d\n", pRegFrame->eip, iGate));
    365367
     
    513515                    {
    514516                        Log(("PGMPrefetchPage failed with rc=%Vrc\n", rc));
    515                         return rc;
     517                        goto failure;
    516518                    }
    517519#ifdef IN_GC
     
    665667                    eflags.Bits.u2IOPL = 0;
    666668
    667                     STAM_COUNTER_INC(&pVM->trpm.s.CTXALLSUFF(paStatForwardedIRQ)[iGate]);
    668669                    Assert(eflags.Bits.u1IF);
    669670                    Assert(eflags.Bits.u2IOPL == 0);
     671                    STAM_COUNTER_INC(&pVM->trpm.s.CTXALLSUFF(paStatForwardedIRQ)[iGate]);
     672                    STAM_PROFILE_ADV_STOP(CTXSUFF(&pVM->trpm.s.StatForwardProf), a);
     673
    670674                    CPUMGCCallGuestTrapHandler(pRegFrame, GuestIdte.Gen.u16SegSel | 1, pVM->trpm.s.aGuestTrapHandler[iGate], eflags.u32, ss_r0, (RTGCPTR)esp_r0);
    671675                    /* does not return */
     
    681685                    pRegFrame->esp        = esp_r0;
    682686                    pRegFrame->ss         = ss_r0 & ~X86_SEL_RPL;     /* set rpl to ring 0 */
     687                    STAM_PROFILE_ADV_STOP(CTXSUFF(&pVM->trpm.s.StatForwardProf), a);
    683688                    return VINF_SUCCESS;
    684689#endif
     
    706711failure:
    707712    STAM_COUNTER_INC(&CTXSUFF(pVM->trpm.s.StatForwardFail));
     713    STAM_PROFILE_ADV_STOP(CTXSUFF(&pVM->trpm.s.StatForwardProf), a);
    708714
    709715    Log(("TRAP%02X: forwarding to REM (ss rpl=%d eflags=%08X VMIF=%d handler=%08X\n", iGate, pRegFrame->ss & X86_SEL_RPL, pRegFrame->eflags.u32, PATMAreInterruptsEnabledByCtxCore(pVM, pRegFrame), pVM->trpm.s.aGuestTrapHandler[iGate]));
  • trunk/src/VBox/VMM/VMMGC/TRPMGCHandlers.cpp

    r468 r624  
    521521                }
    522522            }
    523             int rc = TRPMForwardTrap(pVM, pRegFrame, (uint32_t)pCpu->param1.parval, pCpu->opsize, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT);
     523            rc = TRPMForwardTrap(pVM, pRegFrame, (uint32_t)pCpu->param1.parval, pCpu->opsize, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT);
    524524            if (VBOX_SUCCESS(rc) && rc != VINF_EM_RAW_GUEST_TRAP)
    525525                return trpmGCExitTrap(pVM, VINF_SUCCESS, pRegFrame);
     
    564564        {
    565565            uint32_t cbIgnored;
    566             int rc = EMInterpretInstructionCPU(pVM, pCpu, pRegFrame, PC, &cbIgnored);
     566            rc = EMInterpretInstructionCPU(pVM, pCpu, pRegFrame, PC, &cbIgnored);
    567567            if (VBOX_SUCCESS(rc))
    568568                pRegFrame->eip += pCpu->opsize;
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