mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
wil6210: count drops in Rx block ack reorder
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>
This commit is contained in:
parent
f1ad8c9346
commit
6093e66b6b
3 changed files with 5 additions and 1 deletions
|
@ -1353,7 +1353,7 @@ static void wil_print_rxtid(struct seq_file *s, struct wil_tid_ampdu_rx *r)
|
||||||
else
|
else
|
||||||
seq_printf(s, "%c", r->reorder_buf[i] ? '*' : '_');
|
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)
|
static int wil_sta_debugfs_show(struct seq_file *s, void *data)
|
||||||
|
|
|
@ -153,6 +153,7 @@ __acquires(&sta->tid_rx_lock) __releases(&sta->tid_rx_lock)
|
||||||
/* frame with out of date sequence number */
|
/* frame with out of date sequence number */
|
||||||
if (seq_less(seq, r->head_seq_num)) {
|
if (seq_less(seq, r->head_seq_num)) {
|
||||||
r->ssn_last_drop = seq;
|
r->ssn_last_drop = seq;
|
||||||
|
r->drop++;
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -173,6 +174,7 @@ __acquires(&sta->tid_rx_lock) __releases(&sta->tid_rx_lock)
|
||||||
|
|
||||||
/* check if we already stored this frame */
|
/* check if we already stored this frame */
|
||||||
if (r->reorder_buf[index]) {
|
if (r->reorder_buf[index]) {
|
||||||
|
r->drop++;
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -426,6 +426,7 @@ struct pci_dev;
|
||||||
* @timeout: reset timer value (in TUs).
|
* @timeout: reset timer value (in TUs).
|
||||||
* @dialog_token: dialog token for aggregation session
|
* @dialog_token: dialog token for aggregation session
|
||||||
* @rcu_head: RCU head used for freeing this struct
|
* @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
|
* This structure's lifetime is managed by RCU, assignments to
|
||||||
* the array holding it must hold the aggregation mutex.
|
* the array holding it must hold the aggregation mutex.
|
||||||
|
@ -443,6 +444,7 @@ struct wil_tid_ampdu_rx {
|
||||||
u16 buf_size;
|
u16 buf_size;
|
||||||
u16 timeout;
|
u16 timeout;
|
||||||
u16 ssn_last_drop;
|
u16 ssn_last_drop;
|
||||||
|
unsigned long long drop;
|
||||||
u8 dialog_token;
|
u8 dialog_token;
|
||||||
bool first_time; /* is it 1-st time this buffer used? */
|
bool first_time; /* is it 1-st time this buffer used? */
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue