wil6210: count drops in Rx block ack reorder
authorVladimir Kondratiev <QCA_vkondrat@QCA.qualcomm.com>
Thu, 30 Jul 2015 10:51:50 +0000 (13:51 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 6 Aug 2015 06:42:19 +0000 (09:42 +0300)
When performing Rx reordering, count skb's dropped
per reorder buffer; and print dropped packets count
on the "stations" debugfs entry

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/debugfs.c
drivers/net/wireless/ath/wil6210/rx_reorder.c
drivers/net/wireless/ath/wil6210/wil6210.h

index 75219a1b8805135c5cc751db9f70c50e55ddf285..b862676de577cc2f3c801f77e4961a4b02c43f98 100644 (file)
@@ -1353,7 +1353,7 @@ static void wil_print_rxtid(struct seq_file *s, struct wil_tid_ampdu_rx *r)
                else
                        seq_printf(s, "%c", r->reorder_buf[i] ? '*' : '_');
        }
-       seq_printf(s, "] last drop 0x%03x\n", r->ssn_last_drop);
+       seq_printf(s, "] drop %llu last 0x%03x\n", r->drop, r->ssn_last_drop);
 }
 
 static int wil_sta_debugfs_show(struct seq_file *s, void *data)
index ca10dcf0986eaa39faeed4f61d8a90189a224376..e4ac11cf0f50fa588b8e0358c67ae1d74613ae64 100644 (file)
@@ -153,6 +153,7 @@ __acquires(&sta->tid_rx_lock) __releases(&sta->tid_rx_lock)
        /* frame with out of date sequence number */
        if (seq_less(seq, r->head_seq_num)) {
                r->ssn_last_drop = seq;
+               r->drop++;
                dev_kfree_skb(skb);
                goto out;
        }
@@ -173,6 +174,7 @@ __acquires(&sta->tid_rx_lock) __releases(&sta->tid_rx_lock)
 
        /* check if we already stored this frame */
        if (r->reorder_buf[index]) {
+               r->drop++;
                dev_kfree_skb(skb);
                goto out;
        }
index b79ba4994d0c7403d20bec0bdeb28f8115fcf2e4..54f16732d22647f1e49d62584c2311bbf27b94d8 100644 (file)
@@ -426,6 +426,7 @@ struct pci_dev;
  * @timeout: reset timer value (in TUs).
  * @dialog_token: dialog token for aggregation session
  * @rcu_head: RCU head used for freeing this struct
+ * @drop: total frames dropped for this reorder buffer
  *
  * This structure's lifetime is managed by RCU, assignments to
  * the array holding it must hold the aggregation mutex.
@@ -443,6 +444,7 @@ struct wil_tid_ampdu_rx {
        u16 buf_size;
        u16 timeout;
        u16 ssn_last_drop;
+       unsigned long long drop;
        u8 dialog_token;
        bool first_time; /* is it 1-st time this buffer used? */
 };