diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-12-16 18:57:00 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-20 14:49:48 -0500 |
commit | 4b3ba66a47311770b21e7aba481f4f2a90ba3084 (patch) | |
tree | c4dc1302ff9c641cfcd6173232bcbe925a64abce /drivers/net/wireless/ath/ath9k/ath9k.h | |
parent | 5c405b5c3e435fd332058c59ee58eaa1ac9c513a (diff) |
ath9k: fix queue depth check for forming new aggregates
To improve aggregation length, there should not be more than two fully formed
A-MPDU frames in the hardware queue. To ensure this, the code checks the tx
queue length before forming new A-MPDUs. This can reduce the throughput (or
maybe even starve out A-MPDU traffic) when too many non-aggregated frames are
in the queue.
Fix this by keeping track of pending A-MPDU frames (even when they're sent out
as single frames), but exclude rate control probing frames to improve
performance.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index b0b1216dae0..9fd95191eeb 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -189,6 +189,7 @@ struct ath_txq { | |||
189 | struct list_head axq_q; | 189 | struct list_head axq_q; |
190 | spinlock_t axq_lock; | 190 | spinlock_t axq_lock; |
191 | u32 axq_depth; | 191 | u32 axq_depth; |
192 | u32 axq_ampdu_depth; | ||
192 | bool stopped; | 193 | bool stopped; |
193 | bool axq_tx_inprogress; | 194 | bool axq_tx_inprogress; |
194 | struct list_head axq_acq; | 195 | struct list_head axq_acq; |