diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-03-07 17:00:43 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-03-07 17:00:43 +0000 |
commit | 32997050fa657d18173dac13c6a376305ee1876a (patch) | |
tree | b0e3232a2ad973c82d98f1de8f06cdc03598e291 | |
parent | d19c65588b7df7f4a793819e43508b1ae6383e77 (diff) |
mac80211: improve minstrel_ht performance by reducing the impact of slow sampling
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20038 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/mac80211/patches/560-minstrel_ht.patch | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/package/mac80211/patches/560-minstrel_ht.patch b/package/mac80211/patches/560-minstrel_ht.patch index bc50ca67e..9fa9e05c5 100644 --- a/package/mac80211/patches/560-minstrel_ht.patch +++ b/package/mac80211/patches/560-minstrel_ht.patch @@ -68,7 +68,7 @@ --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.c -@@ -0,0 +1,800 @@ +@@ -0,0 +1,807 @@ +/* + * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org> + * @@ -262,6 +262,7 @@ + int cur_prob, cur_prob_tp, cur_tp, cur_tp2; + int group, i, index; + ++ mi->sample_slow = 0; + mi->sample_count = 0; + mi->max_tp_rate = 0; + mi->max_tp_rate2 = 0; @@ -542,7 +543,9 @@ + if (!mr->retry_updated) + minstrel_calc_retransmit(mp, mi, index); + -+ if (rtscts) ++ if (mr->probability < MINSTREL_FRAC(20, 100)) ++ rate->count = 2; ++ else if (rtscts) + rate->count = mr->retry_count_rtscts; + else + rate->count = mr->retry_count; @@ -595,9 +598,13 @@ + * if the link is working perfectly. + */ + if (minstrel_get_duration(sample_idx) > -+ minstrel_get_duration(mi->max_tp_rate) && -+ mr->sample_skipped < 10) -+ goto next; ++ minstrel_get_duration(mi->max_tp_rate)) { ++ if (mr->sample_skipped < 10) ++ goto next; ++ ++ if (mi->sample_slow++ > 2) ++ goto next; ++ } + + return sample_idx; + @@ -871,7 +878,7 @@ +} --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.h -@@ -0,0 +1,120 @@ +@@ -0,0 +1,121 @@ +/* + * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org> + * @@ -967,6 +974,7 @@ + u8 sample_wait; + u8 sample_tries; + u8 sample_count; ++ u8 sample_slow; + + /* current MCS group to be sampled */ + u8 sample_group; |