summaryrefslogtreecommitdiffstats
path: root/package/mac80211
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-10-20 21:01:06 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-10-20 21:01:06 +0000
commit96ac2aaea72a4708851af92fbebbd8b94222b171 (patch)
treeb4cfb4cd4f464c773252c749ba1ebd8ca829d0db /package/mac80211
parent0b4fda590a435c61977e172b8fd4f38191a721cf (diff)
mac80211: improve minstrel_ht performance by ensuring that rates get sampled fast enough
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23554 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211')
-rw-r--r--package/mac80211/patches/560-minstrel_ht_performance.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/package/mac80211/patches/560-minstrel_ht_performance.patch b/package/mac80211/patches/560-minstrel_ht_performance.patch
new file mode 100644
index 000000000..43ff78b3a
--- /dev/null
+++ b/package/mac80211/patches/560-minstrel_ht_performance.patch
@@ -0,0 +1,31 @@
+--- a/net/mac80211/rc80211_minstrel_ht.h
++++ b/net/mac80211/rc80211_minstrel_ht.h
+@@ -103,6 +103,7 @@ struct minstrel_ht_sta {
+ u8 sample_tries;
+ u8 sample_count;
+ u8 sample_slow;
++ u8 sample_retry;
+
+ /* current MCS group to be sampled */
+ u8 sample_group;
+--- a/net/mac80211/rc80211_minstrel_ht.c
++++ b/net/mac80211/rc80211_minstrel_ht.c
+@@ -261,6 +261,7 @@ minstrel_ht_update_stats(struct minstrel
+
+ /* try to sample up to half of the availble rates during each interval */
+ mi->sample_count *= 4;
++ mi->sample_retry = mi->sample_count;
+
+ cur_prob = 0;
+ cur_prob_tp = 0;
+@@ -572,6 +573,10 @@ minstrel_get_sample_rate(struct minstrel
+ return sample_idx;
+
+ next:
++ if (mi->sample_retry > 0) {
++ mi->sample_retry--;
++ mi->sample_tries++;
++ }
+ minstrel_next_sample_idx(mi);
+ return -1;
+ }