projects
/
openwrt
/
svn-archive
/
archive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9122450
)
mac80211: improve minstrel_ht performance by reducing the impact of slow sampling
author
Felix Fietkau
<nbd@openwrt.org>
Sun, 7 Mar 2010 17:00:43 +0000
(17:00 +0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Sun, 7 Mar 2010 17:00:43 +0000
(17:00 +0000)
SVN-Revision: 20038
package/mac80211/patches/560-minstrel_ht.patch
patch
|
blob
|
history
diff --git
a/package/mac80211/patches/560-minstrel_ht.patch
b/package/mac80211/patches/560-minstrel_ht.patch
index bc50ca67e27b66deb4f46122ed9e5f62ffc1590b..9fa9e05c526fcb70fa886e6f7ba41baf3d97b115 100644
(file)
--- 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
--- /dev/null
+++ b/net/mac80211/rc80211_minstrel_ht.c
-@@ -0,0 +1,80
0
@@
+@@ -0,0 +1,80
7
@@
+/*
+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
+ *
+/*
+ * 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;
+
+ 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;
+ 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 (!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;
+ 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) >
+ * 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;
+
+
+ return sample_idx;
+
@@
-871,7
+878,7
@@
+}
--- /dev/null
+++ b/net/mac80211/rc80211_minstrel_ht.h
+}
--- /dev/null
+++ b/net/mac80211/rc80211_minstrel_ht.h
-@@ -0,0 +1,12
0
@@
+@@ -0,0 +1,12
1
@@
+/*
+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
+ *
+/*
+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
+ *
@@
-967,6
+974,7
@@
+ u8 sample_wait;
+ u8 sample_tries;
+ u8 sample_count;
+ u8 sample_wait;
+ u8 sample_tries;
+ u8 sample_count;
++ u8 sample_slow;
+
+ /* current MCS group to be sampled */
+ u8 sample_group;
+
+ /* current MCS group to be sampled */
+ u8 sample_group;