Skip to contentSkip to conversation

cxgb4vf: Implement "Unhandled Interrupts" statistic

PATCH Applied Casey Leedom 2 participants 3 messages Jul 8, 2010 – Jul 9, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cxgb4vf: Implement "Unhandled Interrupts" statistic

Quoted 1 line

From 6c9cc1b5441afb32ecfcd10ac3060452e3c4df6f Mon Sep 17 00:00:00 2001

From: Casey Leedom <[email protected]>
Date: Thu, 8 Jul 2010 10:05:48 -0700
Subject: [PATCH net-next] cxgb4vf: Implement "Unhandled Interrupts" statistic

Implement "Unhandled Interrupts" statistic so we can detect when the hardware tells us that it things we have work to do but we don't find anything ...

---
 drivers/net/cxgb4vf/cxgb4vf_main.c |    8 +++++---
 drivers/net/cxgb4vf/sge.c          |    3 +++
 2 files changed, 8 insertions(+), 3 deletions(-)
drivers/net/cxgb4vf/cxgb4vf_main.c +5 -3
index bd73ff5..e988031 100644
@@ -1790,7 +1790,7 @@ static int sge_qstats_show(struct seq_file *seq, void *v)
 		  (rxq[qs].rspq.netdev
 		   ? rxq[qs].rspq.netdev->name
 		   : "N/A"));
-		R3("u", "RspQNullInts", rspq.unhandled_irqs);
+		R3("u", "RspQNullInts:", rspq.unhandled_irqs);
 		R("RxPackets:", stats.pkts);
 		R("RxCSO:", stats.rx_cso);
 		R("VLANxtract:", stats.vlan_ex);
@@ -1814,14 +1814,16 @@ static int sge_qstats_show(struct seq_file *seq, void *v)
 		const struct sge_rspq *evtq = &adapter->sge.fw_evtq;
 
 		seq_printf(seq, "%-8s %16s\n", "QType:", "FW event queue");
-		/* no real response queue statistics available to display */
+		seq_printf(seq, "%-16s %8u\n", "RspQNullInts:",
+			   evtq->unhandled_irqs);
 		seq_printf(seq, "%-16s %8u\n", "RspQ CIdx:", evtq->cidx);
 		seq_printf(seq, "%-16s %8u\n", "RspQ Gen:", evtq->gen);
 	} else if (r == 1) {
 		const struct sge_rspq *intrq = &adapter->sge.intrq;
 
 		seq_printf(seq, "%-8s %16s\n", "QType:", "Interrupt Queue");
-		/* no real response queue statistics available to display */
+		seq_printf(seq, "%-16s %8u\n", "RspQNullInts:",
+			   intrq->unhandled_irqs);
 		seq_printf(seq, "%-16s %8u\n", "RspQ CIdx:", intrq->cidx);
 		seq_printf(seq, "%-16s %8u\n", "RspQ Gen:", intrq->gen);
 	}
drivers/net/cxgb4vf/sge.c +3 -0
index 3a7c02f..5c6663a 100644
@@ -1776,6 +1776,9 @@ static int napi_rx_handler(struct napi_struct *napi, int budget)
 	} else
 		intr_params = QINTR_TIMER_IDX(SGE_TIMER_UPD_CIDX);
 
+	if (unlikely(work_done == 0))
+		rspq->unhandled_irqs++;
+
 	t4_write_reg(rspq->adapter,
 		     T4VF_SGE_BASE_ADDR + SGE_VF_GTS,
 		     CIDXINC(work_done) |
Signature · 1 line
1.7.0.4
#1 lore raw

By the way, if there are _any_ problems with the patch, please ignore it and
ball me out. I've tried my hardest to make it correct and follow the correct format but if I'm still not doing it correctly that's my problem to address. I appreciate your patience as I grind my way through this learning curve!

Casey

maintainer Applied
#2 lore raw
In reply to Casey Leedom

From: Casey Leedom <[email protected]>
Date: Thu, 8 Jul 2010 11:07:44 -0700

Quoted 10 lines
Quoted 1 line

From 6c9cc1b5441afb32ecfcd10ac3060452e3c4df6f Mon Sep 17 00:00:00 2001

From: Casey Leedom <[email protected]>
Date: Thu, 8 Jul 2010 10:05:48 -0700
Subject: [PATCH net-next] cxgb4vf: Implement "Unhandled Interrupts" statistic

Implement "Unhandled Interrupts" statistic so we can detect when the hardware tells us that it things we have work to do but we don't find anything ...

Applied, thanks.