ath9k_htc: Add queue statistics to xmit debugfs file
authorSujith <Sujith.Manoharan@atheros.com>
Fri, 14 May 2010 05:48:54 +0000 (11:18 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 2 Jun 2010 20:13:02 +0000 (16:13 -0400)
Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/htc.h
drivers/net/wireless/ath/ath9k/htc_drv_main.c
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c

index c251603ab032f3668acaa9e5f8ce5bac63b1082f..351c4a44c984d486c4824cf3b94a0ba817e307de 100644 (file)
@@ -257,12 +257,15 @@ struct ath9k_htc_tx_ctl {
 #define TX_STAT_INC(c) (hif_dev->htc_handle->drv_priv->debug.tx_stats.c++)
 #define RX_STAT_INC(c) (hif_dev->htc_handle->drv_priv->debug.rx_stats.c++)
 
+#define TX_QSTAT_INC(q) (priv->debug.tx_stats.queue_stats[q]++)
+
 struct ath_tx_stats {
        u32 buf_queued;
        u32 buf_completed;
        u32 skb_queued;
        u32 skb_completed;
        u32 skb_dropped;
+       u32 queue_stats[WME_NUM_AC];
 };
 
 struct ath_rx_stats {
index 9d371c18eb41c2da10e88daf2033259b6ad1657f..cf1112be2a9ab5ade9b595b374393e84b8ab4a63 100644 (file)
@@ -617,6 +617,19 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
                        "%20s : %10u\n", "SKBs dropped",
                        priv->debug.tx_stats.skb_dropped);
 
+       len += snprintf(buf + len, sizeof(buf) - len,
+                       "%20s : %10u\n", "BE queued",
+                       priv->debug.tx_stats.queue_stats[WME_AC_BE]);
+       len += snprintf(buf + len, sizeof(buf) - len,
+                       "%20s : %10u\n", "BK queued",
+                       priv->debug.tx_stats.queue_stats[WME_AC_BK]);
+       len += snprintf(buf + len, sizeof(buf) - len,
+                       "%20s : %10u\n", "VI queued",
+                       priv->debug.tx_stats.queue_stats[WME_AC_VI]);
+       len += snprintf(buf + len, sizeof(buf) - len,
+                       "%20s : %10u\n", "VO queued",
+                       priv->debug.tx_stats.queue_stats[WME_AC_VO]);
+
        return simple_read_from_buffer(user_buf, count, ppos, buf, len);
 }
 
index 2571b443ac82102c126baf428b4277f9725eacdc..09ff8f1a68e0dadec5851170ed24a19b0948a6ea 100644 (file)
@@ -135,16 +135,20 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb)
 
                switch (hw_qnum) {
                case 0:
+                       TX_QSTAT_INC(WME_AC_BE);
                        epid = priv->data_be_ep;
                        break;
                case 2:
+                       TX_QSTAT_INC(WME_AC_VI);
                        epid = priv->data_vi_ep;
                        break;
                case 3:
+                       TX_QSTAT_INC(WME_AC_VO);
                        epid = priv->data_vo_ep;
                        break;
                case 1:
                default:
+                       TX_QSTAT_INC(WME_AC_BK);
                        epid = priv->data_bk_ep;
                        break;
                }