VirtualBox

Changeset 86810 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Nov 5, 2020 6:55:26 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
141246
Message:

AMD IOMMU: bugref:9654 DevIoApic: Add stat for counting interrupts and MSIs discarded due to the IOMMU.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/DevIoApic.cpp

    r86762 r86810  
    252252    /** Number of suppressed level-triggered interrupts (by remote IRR). */
    253253    STAMCOUNTER             StatSuppressedLevelIntr;
     254    /** Number of IOMMU discarded interrupts (signaled by RTE). */
     255    STAMCOUNTER             StatIommuDiscardedIntr;
     256    /** Number of IOMMU denied or failed MSIs. */
     257    STAMCOUNTER             StatIommuDiscardedMsi;
    254258    /** Number of returns to ring-3 due to EOI broadcast lock contention. */
    255259    STAMCOUNTER             StatEoiContention;
     
    535539        else
    536540        {
     541            STAM_COUNTER_INC(&pThis->StatIommuDiscardedIntr);
    537542            Log(("IOAPIC: Interrupt (%#x) discarded (rc=%Rrc)\n", ApicIntr.u8Vector, rcRemap));
    538543            return;
     
    894899{
    895900    PIOAPICCC pThisCC = PDMDEVINS_2_DATA_CC(pDevIns, PIOAPICCC);
     901    PIOAPIC   pThis   = PDMDEVINS_2_DATA(pDevIns, PIOAPIC);
    896902    LogFlow(("IOAPIC: ioapicSendMsi: uBusDevFn=%#x Addr=%#RX64 Data=%#RX32\n", uBusDevFn, pMsi->Addr.u64, pMsi->Data.u32));
    897903
     
    911917    else
    912918    {
     919        STAM_COUNTER_INC(&pThis->StatIommuDiscardedMsi);
    913920        if (rcRemap == VERR_IOMMU_INTR_REMAP_DENIED)
    914921            Log3(("IOAPIC: MSI (Addr=%#RX64 Data=%#RX32) remapping denied. rc=%Rrc", pMsi->Addr.u64, pMsi->Data.u32, rcRemap));
     
    925932     * Deliver to the local APIC via the system/3-wire-APIC bus.
    926933     */
    927     PIOAPIC pThis = PDMDEVINS_2_DATA(pDevIns, PIOAPIC);
    928934    STAM_REL_COUNTER_INC(&pThis->aStatVectors[ApicIntr.u8Vector]);
    929935
     
    14771483    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatRedundantLevelIntr,  STAMTYPE_COUNTER, "RedundantLevelIntr",  STAMUNIT_OCCURENCES, "Number of redundant level-triggered interrupts (no IRR change).");
    14781484    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatSuppressedLevelIntr, STAMTYPE_COUNTER, "SuppressedLevelIntr", STAMUNIT_OCCURENCES, "Number of suppressed level-triggered interrupts by remote IRR.");
     1485    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuDiscardedIntr,  STAMTYPE_COUNTER, "IommuDiscardedIntr",  STAMUNIT_OCCURENCES, "Number of interrupts discarded due to IOMMU.");
     1486    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuDiscardedMsi,   STAMTYPE_COUNTER, "IommuDiscardedMsi",   STAMUNIT_OCCURENCES, "Number of MSIs discarded due to IOMMU.");
    14791487
    14801488    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatEoiContention,    STAMTYPE_COUNTER, "CritSect/ContentionSetEoi", STAMUNIT_OCCURENCES, "Number of times the critsect is busy during EOI writes causing trips to R3.");
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette