Index: /trunk/src/VBox/Devices/PC/DevIoApic.cpp
===================================================================
--- /trunk/src/VBox/Devices/PC/DevIoApic.cpp	(revision 86900)
+++ /trunk/src/VBox/Devices/PC/DevIoApic.cpp	(revision 86901)
@@ -252,6 +252,10 @@
     /** Number of suppressed level-triggered interrupts (by remote IRR). */
     STAMCOUNTER             StatSuppressedLevelIntr;
+    /** Number of IOMMU remapped interrupts (signaled by RTE). */
+    STAMCOUNTER             StatIommuRemappedIntr;
     /** Number of IOMMU discarded interrupts (signaled by RTE). */
     STAMCOUNTER             StatIommuDiscardedIntr;
+    /** Number of IOMMU remapped MSIs. */
+    STAMCOUNTER             StatIommuRemappedMsi;
     /** Number of IOMMU denied or failed MSIs. */
     STAMCOUNTER             StatIommuDiscardedMsi;
@@ -537,4 +541,5 @@
         if (RT_SUCCESS(rcRemap))
         {
+            STAM_COUNTER_INC(&pThis->StatIommuRemappedIntr);
             ioapicGetApicIntrFromMsi(&MsiOut, &ApicIntr);
             Assert(ApicIntr.u8Polarity == IOAPIC_RTE_GET_POLARITY(u64Rte)); /* Ensure polarity hasn't changed. */
@@ -918,5 +923,8 @@
     int rcRemap = pThisCC->pIoApicHlp->pfnIommuMsiRemap(pDevIns, uBusDevFn, pMsi, &MsiOut);
     if (RT_SUCCESS(rcRemap))
+    {
+        STAM_COUNTER_INC(&pThis->StatIommuRemappedMsi);
         ioapicGetApicIntrFromMsi(&MsiOut, &ApicIntr);
+    }
     else
     {
@@ -1487,6 +1495,9 @@
     PDMDevHlpSTAMRegister(pDevIns, &pThis->StatRedundantLevelIntr,  STAMTYPE_COUNTER, "RedundantLevelIntr",  STAMUNIT_OCCURENCES, "Number of redundant level-triggered interrupts (no IRR change).");
     PDMDevHlpSTAMRegister(pDevIns, &pThis->StatSuppressedLevelIntr, STAMTYPE_COUNTER, "SuppressedLevelIntr", STAMUNIT_OCCURENCES, "Number of suppressed level-triggered interrupts by remote IRR.");
-    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuDiscardedIntr,  STAMTYPE_COUNTER, "IommuDiscardedIntr",  STAMUNIT_OCCURENCES, "Number of interrupts discarded due to IOMMU.");
-    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuDiscardedMsi,   STAMTYPE_COUNTER, "IommuDiscardedMsi",   STAMUNIT_OCCURENCES, "Number of MSIs discarded due to IOMMU.");
+
+    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuRemappedIntr,  STAMTYPE_COUNTER, "Iommu/RemappedIntr",  STAMUNIT_OCCURENCES, "Number of interrupts remapped by the IOMMU.");
+    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuRemappedMsi,   STAMTYPE_COUNTER, "Iommu/RemappedMsi",   STAMUNIT_OCCURENCES, "Number of MSIs remapped by the IOMMU.");
+    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuDiscardedIntr, STAMTYPE_COUNTER, "Iommu/DiscardedIntr", STAMUNIT_OCCURENCES, "Number of interrupts discarded by the IOMMU.");
+    PDMDevHlpSTAMRegister(pDevIns, &pThis->StatIommuDiscardedMsi,  STAMTYPE_COUNTER, "Iommu/DiscardedMsi",  STAMUNIT_OCCURENCES, "Number of MSIs discarded by the IOMMU.");
 
     PDMDevHlpSTAMRegister(pDevIns, &pThis->StatEoiContention,    STAMTYPE_COUNTER, "CritSect/ContentionSetEoi", STAMUNIT_OCCURENCES, "Number of times the critsect is busy during EOI writes causing trips to R3.");
@@ -1497,5 +1508,5 @@
 # endif
     for (size_t i = 0; i < RT_ELEMENTS(pThis->aStatVectors); i++)
-        PDMDevHlpSTAMRegisterF(pDevIns, &pThis->aStatVectors, STAMTYPE_COUNTER, STAMVISIBILITY_USED, STAMUNIT_OCCURENCES,
+        PDMDevHlpSTAMRegisterF(pDevIns, &pThis->aStatVectors[i], STAMTYPE_COUNTER, STAMVISIBILITY_USED, STAMUNIT_OCCURENCES,
                                "Number of ioapicSendMsi/pfnApicBusDeliver calls for the vector.", "Vectors/%02x", i);
 
