12345678910111213141516171819202122232425262728293031323334353637383940 |
- From: Felix Fietkau <nbd@nbd.name>
- Date: Sat, 3 Mar 2018 18:48:58 +0100
- Subject: [PATCH] mac80211: minstrel: do not sample rates 3 times slower than
- max_prob_rate
- These rates are highly unlikely to be used quickly, even if the link
- deteriorates rapidly. This improves throughput in cases where CCK rates
- are not reliable enough to be skipped entirely during sampling.
- Sampling these rates regularly can cost a lot of airtime.
- Signed-off-by: Felix Fietkau <nbd@nbd.name>
- ---
- --- a/net/mac80211/rc80211_minstrel_ht.c
- +++ b/net/mac80211/rc80211_minstrel_ht.c
- @@ -1004,10 +1004,13 @@ minstrel_get_sample_rate(struct minstrel
- return -1;
-
- /*
- - * Do not sample if the probability is already higher than 95%
- - * to avoid wasting airtime.
- + * Do not sample if the probability is already higher than 95%,
- + * or if the rate is 3 times slower than the current max probability
- + * rate, to avoid wasting airtime.
- */
- - if (mrs->prob_ewma > MINSTREL_FRAC(95, 100))
- + sample_dur = minstrel_get_duration(sample_idx);
- + if (mrs->prob_ewma > MINSTREL_FRAC(95, 100) ||
- + minstrel_get_duration(mi->max_prob_rate) * 3 < sample_dur)
- return -1;
-
- /*
- @@ -1017,7 +1020,6 @@ minstrel_get_sample_rate(struct minstrel
-
- cur_max_tp_streams = minstrel_mcs_groups[tp_rate1 /
- MCS_GROUP_RATES].streams;
- - sample_dur = minstrel_get_duration(sample_idx);
- if (sample_dur >= minstrel_get_duration(tp_rate2) &&
- (cur_max_tp_streams - 1 <
- minstrel_mcs_groups[sample_group].streams ||
|