From 68dc9d36c19aa1fd1633427b419d5e1f44753e8a Mon Sep 17 00:00:00 2001 From: Casey Leedom Date: Thu, 8 Jul 2010 10:05:48 -0700 Subject: [PATCH] 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 ... Signed-off-by: Casey Leedom Signed-off-by: David S. Miller --- drivers/net/cxgb4vf/cxgb4vf_main.c | 8 +++++--- drivers/net/cxgb4vf/sge.c | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/cxgb4vf/cxgb4vf_main.c b/drivers/net/cxgb4vf/cxgb4vf_main.c index bd73ff5b51b7..e988031f7e86 100644 --- a/drivers/net/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/cxgb4vf/cxgb4vf_main.c @@ -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); } diff --git a/drivers/net/cxgb4vf/sge.c b/drivers/net/cxgb4vf/sge.c index 4bc1858dc303..37c6354547c7 100644 --- a/drivers/net/cxgb4vf/sge.c +++ b/drivers/net/cxgb4vf/sge.c @@ -1772,6 +1772,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) | -- 2.39.5