aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb4vf/cxgb4vf_main.c
diff options
context:
space:
mode:
authorCasey Leedom <leedom@chelsio.com>2010-07-08 13:05:48 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-09 02:48:35 -0400
commit68dc9d36c19aa1fd1633427b419d5e1f44753e8a (patch)
tree4773c01ce4f53445e961ce1256d9c59fccfeb9a2 /drivers/net/cxgb4vf/cxgb4vf_main.c
parentfabc51a640b35a771b6c75d2186193fdaf25cf56 (diff)
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>
Diffstat (limited to 'drivers/net/cxgb4vf/cxgb4vf_main.c')
-rw-r--r--drivers/net/cxgb4vf/cxgb4vf_main.c8
1 files changed, 5 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)
1790 (rxq[qs].rspq.netdev 1790 (rxq[qs].rspq.netdev
1791 ? rxq[qs].rspq.netdev->name 1791 ? rxq[qs].rspq.netdev->name
1792 : "N/A")); 1792 : "N/A"));
1793 R3("u", "RspQNullInts", rspq.unhandled_irqs); 1793 R3("u", "RspQNullInts:", rspq.unhandled_irqs);
1794 R("RxPackets:", stats.pkts); 1794 R("RxPackets:", stats.pkts);
1795 R("RxCSO:", stats.rx_cso); 1795 R("RxCSO:", stats.rx_cso);
1796 R("VLANxtract:", stats.vlan_ex); 1796 R("VLANxtract:", stats.vlan_ex);
@@ -1814,14 +1814,16 @@ static int sge_qstats_show(struct seq_file *seq, void *v)
1814 const struct sge_rspq *evtq = &adapter->sge.fw_evtq; 1814 const struct sge_rspq *evtq = &adapter->sge.fw_evtq;
1815 1815
1816 seq_printf(seq, "%-8s %16s\n", "QType:", "FW event queue"); 1816 seq_printf(seq, "%-8s %16s\n", "QType:", "FW event queue");
1817 /* no real response queue statistics available to display */ 1817 seq_printf(seq, "%-16s %8u\n", "RspQNullInts:",
1818 evtq->unhandled_irqs);
1818 seq_printf(seq, "%-16s %8u\n", "RspQ CIdx:", evtq->cidx); 1819 seq_printf(seq, "%-16s %8u\n", "RspQ CIdx:", evtq->cidx);
1819 seq_printf(seq, "%-16s %8u\n", "RspQ Gen:", evtq->gen); 1820 seq_printf(seq, "%-16s %8u\n", "RspQ Gen:", evtq->gen);
1820 } else if (r == 1) { 1821 } else if (r == 1) {
1821 const struct sge_rspq *intrq = &adapter->sge.intrq; 1822 const struct sge_rspq *intrq = &adapter->sge.intrq;
1822 1823
1823 seq_printf(seq, "%-8s %16s\n", "QType:", "Interrupt Queue"); 1824 seq_printf(seq, "%-8s %16s\n", "QType:", "Interrupt Queue");
1824 /* no real response queue statistics available to display */ 1825 seq_printf(seq, "%-16s %8u\n", "RspQNullInts:",
1826 intrq->unhandled_irqs);
1825 seq_printf(seq, "%-16s %8u\n", "RspQ CIdx:", intrq->cidx); 1827 seq_printf(seq, "%-16s %8u\n", "RspQ CIdx:", intrq->cidx);
1826 seq_printf(seq, "%-16s %8u\n", "RspQ Gen:", intrq->gen); 1828 seq_printf(seq, "%-16s %8u\n", "RspQ Gen:", intrq->gen);
1827 } 1829 }