Commit ade6d4a2 authored by Thomas Huehn's avatar Thomas Huehn Committed by Johannes Berg

mac80211: reduce calculation costs of EWMA

This patch reduces the calculation costs of the EWMA macro from
"2x multiplication and 1 addition" down to "1x multiplication and
2x additions". This slightly improves performance depending on the
CPU architecture.
Signed-off-by: default avatarThomas Huehn <thomas@net.t-labs.tu-berlin.de>
Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 50e55a8e
...@@ -27,7 +27,12 @@ ...@@ -27,7 +27,12 @@
static inline int static inline int
minstrel_ewma(int old, int new, int weight) minstrel_ewma(int old, int new, int weight)
{ {
return (new * (EWMA_DIV - weight) + old * weight) / EWMA_DIV; int diff, incr;
diff = new - old;
incr = (EWMA_DIV - weight) * diff / EWMA_DIV;
return old + incr;
} }
struct minstrel_rate_stats { struct minstrel_rate_stats {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment