VirtualBox

Changeset 38867 in vbox


Ignore:
Timestamp:
Sep 26, 2011 2:31:16 PM (13 years ago)
Author:
vboxsync
Message:

TRPM: Host interrupt stats.

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

Legend:

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

    r38378 r38867  
    542542
    543543#ifdef VBOX_WITH_STATISTICS
    544     rc = MMHyperAlloc(pVM, sizeof(STAMCOUNTER) * 255, 8, MM_TAG_STAM, (void **)&pVM->trpm.s.paStatForwardedIRQR3);
     544    rc = MMHyperAlloc(pVM, sizeof(STAMCOUNTER) * 256, sizeof(STAMCOUNTER), MM_TAG_TRPM, (void **)&pVM->trpm.s.paStatForwardedIRQR3);
    545545    AssertRCReturn(rc, rc);
    546546    pVM->trpm.s.paStatForwardedIRQRC = MMHyperR3ToRC(pVM, pVM->trpm.s.paStatForwardedIRQR3);
    547547    pVM->trpm.s.paStatForwardedIRQR0 = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatForwardedIRQR3);
    548     for (unsigned i = 0; i < 255; i++)
     548    for (unsigned i = 0; i < 256; i++)
    549549        STAMR3RegisterF(pVM, &pVM->trpm.s.paStatForwardedIRQR3[i], STAMTYPE_COUNTER, STAMVISIBILITY_USED, STAMUNIT_OCCURENCES, "Forwarded interrupts.",
    550550                        i < 0x20 ? "/TRPM/ForwardRaw/TRAP/%02X" : "/TRPM/ForwardRaw/IRQ/%02X", i);
     551
     552    rc = MMHyperAlloc(pVM, sizeof(STAMCOUNTER) * 256, sizeof(STAMCOUNTER), MM_TAG_TRPM, (void **)&pVM->trpm.s.paStatHostIrqR3);
     553    AssertRCReturn(rc, rc);
     554    pVM->trpm.s.paStatHostIrqRC = MMHyperR3ToRC(pVM, pVM->trpm.s.paStatHostIrqR3);
     555    pVM->trpm.s.paStatHostIrqR0 = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatHostIrqR3);
     556    for (unsigned i = 0; i < 256; i++)
     557        STAMR3RegisterF(pVM, &pVM->trpm.s.paStatHostIrqR3[i], STAMTYPE_COUNTER, STAMVISIBILITY_USED, STAMUNIT_OCCURENCES,
     558                        "Host interrupts.", "/TRPM/HostIRQs/%02x", i);
    551559#endif
    552560
     
    695703#ifdef VBOX_WITH_STATISTICS
    696704    pVM->trpm.s.paStatForwardedIRQRC += offDelta;
    697     pVM->trpm.s.paStatForwardedIRQR0 = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatForwardedIRQR3);
     705    pVM->trpm.s.paStatForwardedIRQR0  = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatForwardedIRQR3);
     706    pVM->trpm.s.paStatHostIrqRC += offDelta;
     707    pVM->trpm.s.paStatHostIrqR0  = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatHostIrqR3);
    698708#endif
    699709}
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlersA.asm

    r37955 r38867  
    851851%endif
    852852
     853%ifdef VBOX_WITH_STATISTICS
     854    ;
     855    ; Update statistics.
     856    ;
     857    mov     eax, IMP(g_TRPM)
     858    movzx   edx, byte [esp + 0h + ESPOFF]   ; vector number
     859    imul    edx, edx, byte STAMCOUNTER_size
     860    add     edx, [eax + TRPM.paStatHostIrqRC]
     861    STAM_COUNTER_INC edx
     862%endif
     863
    853864    ;
    854865    ; Check if we're in Hypervisor when this happened.
  • trunk/src/VBox/VMM/include/TRPMInternal.h

    r35346 r38867  
    156156
    157157#ifdef VBOX_WITH_STATISTICS
    158     /* R3: Statistics for interrupt handlers (allocated on the hypervisor heap). */
     158    /** Statistics for interrupt handlers (allocated on the hypervisor heap) - R3
     159     * pointer. */
    159160    R3PTRTYPE(PSTAMCOUNTER) paStatForwardedIRQR3;
    160     /* R0: Statistics for interrupt handlers (allocated on the hypervisor heap). */
     161    /** Statistics for interrupt handlers - R0 pointer. */
    161162    R0PTRTYPE(PSTAMCOUNTER) paStatForwardedIRQR0;
    162     /* RC: Statistics for interrupt handlers (allocated on the hypervisor heap). */
     163    /** Statistics for interrupt handlers - RC pointer. */
    163164    RCPTRTYPE(PSTAMCOUNTER) paStatForwardedIRQRC;
     165
     166    /** Host interrupt statistics (allocated on the hypervisor heap) - RC ptr. */
     167    RCPTRTYPE(PSTAMCOUNTER) paStatHostIrqRC;
     168    /** Host interrupt statistics (allocated on the hypervisor heap) - R3 ptr. */
     169    R3PTRTYPE(PSTAMCOUNTER) paStatHostIrqR3;
     170    /** Host interrupt statistics (allocated on the hypervisor heap) - R0 ptr. */
     171    R0PTRTYPE(PSTAMCOUNTER) paStatHostIrqR0;
    164172#endif
    165173} TRPM;
  • trunk/src/VBox/VMM/include/TRPMInternal.mac

    r35346 r38867  
    6060
    6161%ifdef VBOX_WITH_STATISTICS
    62     .paStatForwardedIRQR3  RTR3PTR_RES 1
    63     .paStatForwardedIRQR0  RTR0PTR_RES 1
    64     .paStatForwardedIRQRC  RTRCPTR_RES 1
     62    .paStatForwardedIRQR3    RTR3PTR_RES 1
     63    .paStatForwardedIRQR0    RTR0PTR_RES 1
     64    .paStatForwardedIRQRC    RTRCPTR_RES 1
     65    .paStatHostIrqRC         RTRCPTR_RES 1
     66    .paStatHostIrqR3         RTR3PTR_RES 1
     67    .paStatHostIrqR0         RTR0PTR_RES 1
    6568%endif
    6669endstruc
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