ath9k: fix queue depth check for forming new aggregates
authorFelix Fietkau <nbd@openwrt.org>
Thu, 16 Dec 2010 23:57:00 +0000 (00:57 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 20 Dec 2010 19:49:48 +0000 (14:49 -0500)
commit4b3ba66a47311770b21e7aba481f4f2a90ba3084
treec4dc1302ff9c641cfcd6173232bcbe925a64abce
parent5c405b5c3e435fd332058c59ee58eaa1ac9c513a
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>
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/xmit.c