Commit Graph
2 Commits
Author SHA1 Message Date
Bruno RandolfandJohn W. Linville af55688435 lib: Improve EWMA efficiency by using bitshifts
Using bitshifts instead of division and multiplication should improve
performance. That requires weight and factor to be powers of two, but i think
this is something we can live with.

Thanks to Peter Zijlstra for the improved formula!

Signed-off-by: Bruno Randolf <[email protected]>

--

v2:	use log2.h functions
Signed-off-by: John W. Linville <[email protected]>
2010-12-06 15:58:43 -05:00
Bruno RandolfandJohn W. Linville c5485a7e75 lib: Add generic exponentially weighted moving average (EWMA) function
This adds generic functions for calculating Exponentially Weighted Moving
Averages (EWMA). This implementation makes use of a structure which keeps the
EWMA parameters and a scaled up internal representation to reduce rounding
errors.

The original idea for this implementation came from the rt2x00 driver
(rt2x00link.c). I would like to use it in several places in the mac80211 and
ath5k code and I hope it can be useful in many other places in the kernel code.

Signed-off-by: Bruno Randolf <[email protected]>
Reviewed-by: KOSAKI Motohiro <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
2010-11-18 14:21:52 -05:00