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:
Note how the orange bars show lower airtime usage for the slow station. The aggregate throughput is also improved:
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.