hw/nvme: fix trace event for pin-based irq
authorKlaus Jensen <k.jensen@samsung.com>
Sun, 5 Mar 2023 21:36:45 +0000 (22:36 +0100)
committerKlaus Jensen <k.jensen@samsung.com>
Thu, 8 Jun 2023 11:32:05 +0000 (13:32 +0200)
The nvme_irq_pin trace event ("pulsing IRQ pin") is a left-over from
when the device used the deprecated (and invalid) pci_irq_pulse()
function.

Fix it to make it clear if the irq pin is being asserted or not.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
hw/nvme/ctrl.c
hw/nvme/trace-events

index 983ca8afa9cb3fc14781a5f74830aba9d09b069d..c581106b06e127b9ef6995ea84c75b648505a622 100644 (file)
@@ -647,12 +647,16 @@ static void nvme_irq_check(NvmeCtrl *n)
     PCIDevice *pci = PCI_DEVICE(n);
     uint32_t intms = ldl_le_p(&n->bar.intms);
 
+    trace_pci_nvme_irq_check(intms, n->irq_status);
+
     if (msix_enabled(pci)) {
         return;
     }
     if (~intms & n->irq_status) {
+        trace_pci_nvme_irq_pin(1);
         pci_irq_assert(pci);
     } else {
+        trace_pci_nvme_irq_pin(0);
         pci_irq_deassert(pci);
     }
 }
@@ -666,7 +670,6 @@ static void nvme_irq_assert(NvmeCtrl *n, NvmeCQueue *cq)
             trace_pci_nvme_irq_msix(cq->vector);
             msix_notify(pci, cq->vector);
         } else {
-            trace_pci_nvme_irq_pin();
             assert(cq->vector < 32);
             n->irq_status |= 1 << cq->vector;
             nvme_irq_check(n);
index 9afddf3b951c09b5c40e77c9f6e1b5f4e51c3c0b..7a982b83132d59fe0c60bfa17257f7f076a9d439 100644 (file)
@@ -1,6 +1,7 @@
 # successful events
 pci_nvme_irq_msix(uint32_t vector) "raising MSI-X IRQ vector %u"
-pci_nvme_irq_pin(void) "pulsing IRQ pin"
+pci_nvme_irq_check(uint32_t intms, uint32_t irq_status) "intms 0x%"PRIx32" irq_status 0x%"PRIx32""
+pci_nvme_irq_pin(uint8_t assert) "assert %"PRIu8""
 pci_nvme_irq_masked(void) "IRQ is masked"
 pci_nvme_dma_read(uint64_t prp1, uint64_t prp2) "DMA read, prp1=0x%"PRIx64" prp2=0x%"PRIx64""
 pci_nvme_dbbuf_config(uint64_t dbs_addr, uint64_t eis_addr) "dbs_addr=0x%"PRIx64" eis_addr=0x%"PRIx64""