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 <leedom@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fabc51a640
commit
68dc9d36c1
2 changed files with 8 additions and 3 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) |
|
||||
|
|
Loading…
Reference in a new issue