mac80211: improve minstrel_ht performance by ensuring that rates get sampled fast...
[oweals/openwrt.git] / package / mac80211 / patches / 560-minstrel_ht_performance.patch
1 --- a/net/mac80211/rc80211_minstrel_ht.h
2 +++ b/net/mac80211/rc80211_minstrel_ht.h
3 @@ -103,6 +103,7 @@ struct minstrel_ht_sta {
4         u8 sample_tries;
5         u8 sample_count;
6         u8 sample_slow;
7 +       u8 sample_retry;
8  
9         /* current MCS group to be sampled */
10         u8 sample_group;
11 --- a/net/mac80211/rc80211_minstrel_ht.c
12 +++ b/net/mac80211/rc80211_minstrel_ht.c
13 @@ -261,6 +261,7 @@ minstrel_ht_update_stats(struct minstrel
14  
15         /* try to sample up to half of the availble rates during each interval */
16         mi->sample_count *= 4;
17 +       mi->sample_retry = mi->sample_count;
18  
19         cur_prob = 0;
20         cur_prob_tp = 0;
21 @@ -572,6 +573,10 @@ minstrel_get_sample_rate(struct minstrel
22         return sample_idx;
23  
24  next:
25 +       if (mi->sample_retry > 0) {
26 +               mi->sample_retry--;
27 +               mi->sample_tries++;
28 +       }
29         minstrel_next_sample_idx(mi);
30         return -1;
31  }