ath9k: Add airtime fairness scheduler
[openwrt/staging/mkresin.git] / package / kernel / mac80211 / patches / 344-ath9k-Introduce-airtime-fairness-scheduling-between-.patch
1 From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <toke@toke.dk>
2 Date: Mon, 5 Dec 2016 13:27:37 +0200
3 Subject: [PATCH] ath9k: Introduce airtime fairness scheduling between stations
4 MIME-Version: 1.0
5 Content-Type: text/plain; charset=UTF-8
6 Content-Transfer-Encoding: 8bit
7
8 This reworks the ath9k driver to schedule transmissions to connected
9 stations in a way that enforces airtime fairness between them. It
10 accomplishes this by measuring the time spent transmitting to or
11 receiving from a station at TX and RX completion, and accounting this to
12 a per-station, per-QoS level airtime deficit. Then, an FQ-CoDel based
13 deficit scheduler is employed at packet dequeue time, to control which
14 station gets the next transmission opportunity.
15
16 Airtime fairness can significantly improve the efficiency of the network
17 when station rates vary. The following throughput values are from a
18 simple three-station test scenario, where two stations operate at the
19 highest HT20 rate, and one station at the lowest, and the scheduler is
20 employed at the access point:
21
22 Before / After
23 Fast station 1: 19.17 / 25.09 Mbps
24 Fast station 2: 19.83 / 25.21 Mbps
25 Slow station: 2.58 / 1.77 Mbps
26 Total: 41.58 / 52.07 Mbps
27
28 The benefit of airtime fairness goes up the more stations are present.
29 In a 30-station test with one station artificially limited to 1 Mbps,
30 we have seen aggregate throughput go from 2.14 to 17.76 Mbps.
31
32 Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
33 Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
34 ---
35