linux/drivers/net/wireless/ath
Toke Høiland-Jørgensen 50f08edf98 ath9k: Switch to using mac80211 intermediate software queues.
This switches ath9k over to using the mac80211 intermediate software
queueing mechanism for data packets. It removes the queueing inside the
driver, except for the retry queue, and instead pulls from mac80211 when
a packet is needed. The retry queue is used to store a packet that was
pulled but can't be sent immediately.

The old code path in ath_tx_start that would queue packets has been
removed completely, as has the qlen limit tunables (since there's no
longer a queue in the driver to limit).

The mac80211 intermediate software queues offer significant latency
reductions, and this patch allows ath9k to realise them. The exact gains
from this varies with the test scenario, but in an access point scenario
we have seen latency reductions ranging from 1/3 to as much as an order
of magnitude. We also achieve slightly better aggregation.

Median latency (ping) figures with this patch applied at the access point,
with two high-rate stations and one low-rate station (HT20 5Ghz), running
a Flent rtt_fair_var_up test with one TCP flow and one ping flow going to
each station:

                                 Fast station        Slow station
Default pfifo_fast qdisc:            430.4 ms            638.7 ms
fq_codel qdisc on iface:              35.5 ms            211.8 ms
This patch set:                       22.4 ms             38.2 ms

Median aggregation sizes over the same test:

Default pfifo_fast qdisc:            9.5 pkts            1.9 pkts
fq_codel qdisc on iface:            11.2 pkts            1.9 pkts
This patch set:                     13.9 pkts            1.9 pkts

This patch is based on Tim's original patch set, but reworked quite
thoroughly.

Cc: Tim Shepard <shep@alum.mit.edu>
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-11-15 17:00:04 +02:00
..
ar5523 net: wireless: ath: ar5523: ar5523: don't print error when allocating urb fails 2016-08-13 14:53:40 -07:00
ath5k ath5k: fix EEPROM dumping via debugfs 2016-09-03 13:02:24 +03:00
ath6kl ath6kl: configure SDIO when power is reapplied 2016-10-06 10:14:45 +03:00
ath9k ath9k: Switch to using mac80211 intermediate software queues. 2016-11-15 17:00:04 +02:00
ath10k ath10k: fix kernel panic due to race in accessing arvif list 2016-10-13 17:21:20 +03:00
carl9170 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-10-05 10:11:24 -07:00
wcn36xx wcn36xx: Silence error about unsupported smd event 188 2016-07-08 17:04:40 +03:00
wil6210 net: use core MTU range checking in wireless drivers 2016-10-20 14:51:08 -04:00
ath.h ath9k: add a helper to get the string representation of ath_bus_type 2016-11-15 16:55:37 +02:00
debug.c
dfs_pattern_detector.c ath: constify local structures 2016-09-14 20:01:39 +03:00
dfs_pattern_detector.h
dfs_pri_detector.c
dfs_pri_detector.h
hw.c
Kconfig
key.c
main.c ath9k: add a helper to get the string representation of ath_bus_type 2016-11-15 16:55:37 +02:00
Makefile
reg.h
regd.c ath: export alpha2 helper 2016-10-04 18:01:48 +03:00
regd.h ath: export alpha2 helper 2016-10-04 18:01:48 +03:00
regd_common.h
spectral_common.h
trace.c
trace.h