aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-20 21:01:06 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-10-20 21:01:06 +0000
commit45c088cdf1d633a53095a3a4c824c823e914a147 (patch)
tree692399766bfb30b63bd1b637e3d36791b7c73bec
parentd9b732a591363add1e73be5e1c8d1775b6ca1414 (diff)
downloadupstream-45c088cdf1d633a53095a3a4c824c823e914a147.tar.gz
upstream-45c088cdf1d633a53095a3a4c824c823e914a147.tar.bz2
upstream-45c088cdf1d633a53095a3a4c824c823e914a147.zip
mac80211: improve minstrel_ht performance by ensuring that rates get sampled fast enough
SVN-Revision: 23554
-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 0000000000..43ff78b3a6
--- /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;
+ }