From 5f63afe0288d9553a9560725d7abbf3fc899a5da Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 8 Oct 2019 19:11:39 +0200 Subject: mac80211: minstrel_ht: rename prob_ewma to prob_avg, use it for the new average Reduces per-rate data structure size Signed-off-by: Felix Fietkau Link: https://lore.kernel.org/r/20191008171139.96476-3-nbd@nbd.name Signed-off-by: Johannes Berg --- net/mac80211/rc80211_minstrel.h | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'net/mac80211/rc80211_minstrel.h') diff --git a/net/mac80211/rc80211_minstrel.h b/net/mac80211/rc80211_minstrel.h index 31f6f02ab765..dbb43bcd3c45 100644 --- a/net/mac80211/rc80211_minstrel.h +++ b/net/mac80211/rc80211_minstrel.h @@ -47,14 +47,10 @@ minstrel_ewma(int old, int new, int weight) return old + incr; } -struct minstrel_avg_ctx { - s32 prev[2]; -}; - -static inline int minstrel_filter_avg_add(struct minstrel_avg_ctx *ctx, s32 in) +static inline int minstrel_filter_avg_add(u16 *prev_1, u16 *prev_2, s32 in) { - s32 out_1 = ctx->prev[0]; - s32 out_2 = ctx->prev[1]; + s32 out_1 = *prev_1; + s32 out_2 = *prev_2; s32 val; if (!in) @@ -76,8 +72,8 @@ static inline int minstrel_filter_avg_add(struct minstrel_avg_ctx *ctx, s32 in) val = 1; out: - ctx->prev[1] = out_1; - ctx->prev[0] = val; + *prev_2 = out_1; + *prev_1 = val; return val; } @@ -90,10 +86,9 @@ struct minstrel_rate_stats { /* total attempts/success counters */ u32 att_hist, succ_hist; - struct minstrel_avg_ctx avg; - - /* prob_ewma - exponential weighted moving average of prob */ - u16 prob_ewma; + /* prob_avg - moving average of prob */ + u16 prob_avg; + u16 prob_avg_1; /* maximum retry counts */ u8 retry_count; @@ -181,7 +176,7 @@ void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir); /* Recalculate success probabilities and counters for a given rate using EWMA */ void minstrel_calc_rate_stats(struct minstrel_priv *mp, struct minstrel_rate_stats *mrs); -int minstrel_get_tp_avg(struct minstrel_rate *mr, int prob_ewma); +int minstrel_get_tp_avg(struct minstrel_rate *mr, int prob_avg); /* debugfs */ int minstrel_stats_open(struct inode *inode, struct file *file); -- cgit v1.2.3-59-g8ed1b