aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2020-12-29 18:23:29 +0100
committerFelix Fietkau <nbd@nbd.name>2021-01-03 12:56:40 +0100
commit3a12c6679eb184ca2a9a2b1266cc2d41f3f00bad (patch)
tree4c2a02dad4c0ebd8cbd90ad751841f3cedbdfd05 /package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch
parent55e23f2c02ae95e84613ed7d1cbf8aba557b8682 (diff)
downloadupstream-3a12c6679eb184ca2a9a2b1266cc2d41f3f00bad.tar.gz
upstream-3a12c6679eb184ca2a9a2b1266cc2d41f3f00bad.tar.bz2
upstream-3a12c6679eb184ca2a9a2b1266cc2d41f3f00bad.zip
mac80211: replace legacy minstrel with minstrel_ht, improve rate selection
Legacy minstrel is essentially unmaintained and was showing poor performance Replace it with minstrel_ht and improve rate selection and sampling behavior Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch b/package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch
new file mode 100644
index 0000000000..e084525235
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/342-mac80211-minstrel_ht-improve-sample-rate-selection.patch
@@ -0,0 +1,31 @@
+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];
+ }
+