| comments | tags:WiFi Linux categories:research series:english
A first stab at an airtime fairness scheduler for ath9k
I’ve been taking a stab at adding airtime fairness scheduling to the ath9k Linux Wifi driver. The idea is to apply concepts from FQ-CoDel to schedule between stations, but counting airtime rather than bytes in the deficit. This is mostly targeted at access points, but may work for ad-hoc mode as well. A first stab of this shows promising results:
Aggregate airtime usage for three stations with and without the airtime fairness scheduler. This shows the long-term average airtime in a 200 ms sampling interval over a 30 second test run; the variation is over 30 repetitions of the test.
Note how the orange bars show lower airtime usage for the slow station. The aggregate throughput is also improved:
Average aggregate throughput over each 30 second test. Also 30 repetitions.
Obviously, more testing is needed, and there are many aspects that I have not evaluated thoroughly yet. For instance, the third (purple) data series shows what happens when also accounting RX airtime usage in the scheduling deficit. Note that this is all for TCP traffic in one direction only (corresponding to TX in the measurements).
I also haven’t looked at latency or bidirectional traffic yet. So lots more to do still, but the initial results are at least promising.
The airtime stats are gathered by Flent, BTW, from debugfs info I added as part of the patch set (which is posted here). The newest git version of Flent can do this, look in the git log to see the details.
Update 2016-06-07: Added link to patch set.