| From: Felix Fietkau <nbd@nbd.name> |
| Date: Sat, 26 Dec 2020 19:12:22 +0100 |
| Subject: [PATCH] mac80211: minstrel_ht: improve sample rate selection |
| |
| Always allow sampling of rates faster than the primary max throughput rate. |
| When the second max_tp_rate is higher than the first one, sample attempts were |
| previously skipped, potentially causing rate control to get stuck at a slightly |
| lower rate |
| |
| Signed-off-by: Felix Fietkau <nbd@nbd.name> |
| --- |
| |
| --- a/net/mac80211/rc80211_minstrel_ht.c |
| +++ b/net/mac80211/rc80211_minstrel_ht.c |
| @@ -1379,13 +1379,13 @@ minstrel_get_sample_rate(struct minstrel |
| mrs = &mg->rates[sample_idx]; |
| sample_idx += sample_group * MCS_GROUP_RATES; |
| |
| - /* Set tp_rate1, tp_rate2 to the highest / second highest max_tp_rate */ |
| + tp_rate1 = mi->max_tp_rate[0]; |
| + |
| + /* Set tp_rate2 to the second highest max_tp_rate */ |
| if (minstrel_get_duration(mi->max_tp_rate[0]) > |
| minstrel_get_duration(mi->max_tp_rate[1])) { |
| - tp_rate1 = mi->max_tp_rate[1]; |
| tp_rate2 = mi->max_tp_rate[0]; |
| } else { |
| - tp_rate1 = mi->max_tp_rate[0]; |
| tp_rate2 = mi->max_tp_rate[1]; |
| } |
| |