openwrt/package/kernel/mac80211/patches/subsys/310-mac80211-minstrel_ht-reduce-fluctuations-in-rate-pro.patch

31 lines
1.2 KiB
Diff
Raw Normal View History

From: Felix Fietkau <nbd@nbd.name>
Date: Sat, 6 Feb 2021 16:08:01 +0100
Subject: [PATCH] mac80211: minstrel_ht: reduce fluctuations in rate
probability stats
In some scenarios when there is a lot of fluctuation in packet error rates,
rate switching can be amplified when the statistics get skewed by time slots
with very few tries.
Make the input data to the moving average more smooth by adding the
success/attempts count from the last stats window as well. This has the
advantage of smoothing the data without introducing any extra lag to sampling
rates.
This significantly improves rate stability on a strong test link subjected to
periodic noise bursts generated with a SDR
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -700,7 +700,8 @@ minstrel_ht_calc_rate_stats(struct minst
unsigned int cur_prob;
if (unlikely(mrs->attempts > 0)) {
- cur_prob = MINSTREL_FRAC(mrs->success, mrs->attempts);
+ cur_prob = MINSTREL_FRAC(mrs->success + mrs->last_success,
+ mrs->attempts + mrs->last_attempts);
minstrel_filter_avg_add(&mrs->prob_avg,
&mrs->prob_avg_1, cur_prob);
mrs->att_hist += mrs->attempts;