[Make-wifi-fast] some smaller projects (I hope!)
dave.taht at gmail.com
Wed Nov 30 21:44:33 EST 2016
I went looking through the main make-wifi-fast document and it appears
that now that the core patches are landing in linux, that tackling a
few more problems would get a lot simpler, and mostly be confined to
the mac80211 codebase. It would be good to spin up a few more folk in
this part of things (and to get code review of the latest patchsets
now that they are in almost-kinda in the kernel).
I wouldn't mind if this was a social thing we did on the #bufferbloat
irc channel, sometime later this week. Tomorrow morning (thursday) is
good. Saturday is good.
I used to use irc a lot but with my network perpetually broken or
under load I got out of the habit of using it.
1) Reduce advertised TXOP under load
This among other things would tell clients to send less data at a time
when other stations were heavily contending, benefiting all stations
in terms of latency.
This is presently a static variable assigned once by hostapd in the conf file
see wherever "wmm_ac_vi_txop_limit=94" and trace through hostapd for
whatever it sets, or grep like crazy.
2) Teach minstrel to be able to create aggregates of any specified duration.
Currently the minstrel_ht code (and darn it, I can't find it now, it's
just one function) always tries to form a 4ms aggregate, where being
able to form shorter ones also would improve inter-station latency.
The simplest thought (once that function was found) would be to look
at the backlog for a station and if smaller than the total backlog,
halve the aggregate size.
Something cleverer might try to shrink things more dynamically
(3,2,1.5) based on the number of stations backlogged.
3) Fix the VI queue
This has been broken for years, and the above two mods would fix it.
VI queue is limited to 1ms and if you put bigger packet trains in it
that that, barfs.
4) Make mac80211 codel params configurable
Presently not exposed, and defaulting to overlarge defaults
5) Clean up the existing "aqm" stats file to be more human readable
6) Reduce various retries
I have no idea why the ath9k defaults to 31 fixed retries.
I'd like to see minstrel (this is harder work) form shorter retry
chains in general, also.
7) Remove reorder buffers (and see what happens) - somewhere.
I am not sure what drivers actually use this facility, but i think the
iwl is one.
Anyway, after that sort of cruft removal, I'd like to go back to
looking at how the codel algorithm performs (I outlined some potential
changes in the lwn article's comments)
Let's go make home routers and wifi faster! With better software!
More information about the Make-wifi-fast