On 2021-01-25 12:56, Toke Høiland-Jørgensen wrote: > Felix Fietkau <nbd@xxxxxxxx> writes: > >> The biggest flaw in current minstrel_ht is the fact that it needs way too >> many probing packets to be able to quickly find the best rate. >> Depending on the wifi hardware and operating mode, this can significantly >> reduce throughput when not operating at the highest available data rate. >> >> In order to be able to significantly reduce the amount of rate sampling, >> we need a much smarter selection of probing rates. >> >> The new approach introduced by this patch maintains a limited set of >> available rates to be tested during a statistics window. >> >> They are split into distinct categories: >> - MINSTREL_SAMPLE_TYPE_INC - incremental rate upgrade: >> Pick the next rate group and find the first rate that is faster than >> the current max. throughput rate >> - MINSTREL_SAMPLE_TYPE_JUMP - random testing of higher rates: >> Pick a random rate from the next group that is faster than the current >> max throughput rate. This allows faster adaptation when the link changes >> significantly >> - MINSTREL_SAMPLE_TYPE_SLOW - test a rate between max_prob, max_tp2 and >> max_tp in order to reduce the gap between them >> >> In order to prioritize sampling, every 6 attempts are split into 3x INC, >> 2x JUMP, 1x SLOW. >> >> Available rates are checked and refilled on every stats window update. > > Very cool! > >> With this approach, we finally get a very small delta in throughput when >> comparing setting the optimal data rate as a fixed rate vs normal rate >> control operation. > > Can you quantify this "very small delta"? Would love to see some > benchmark data :) Based on a quick test it seems to be around 5% (sometimes less) at VHT80 MCS6 nss=4 with ~350 mbit/s TCP throughput. I guess I might be able to bring that down even further, once I optimize it some more. - Felix