17 Jan, 2014

1 commit

  • To ensure ewma_read() without a lock returns a valid but possibly
    out of date average, modify ewma_add() by using ACCESS_ONCE to prevent
    intermediate wrong values from being written to avg->internal.

    Suggested-by: Eric Dumazet
    Acked-by: Michael S. Tsirkin
    Acked-by: Eric Dumazet
    Signed-off-by: Michael Dalton
    Signed-off-by: David S. Miller

    Michael Dalton
     

08 Mar, 2012

1 commit


07 Dec, 2010

1 commit

  • 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

    --

    v2: use log2.h functions
    Signed-off-by: John W. Linville

    Bruno Randolf
     

19 Nov, 2010

1 commit

  • 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
    Reviewed-by: KOSAKI Motohiro
    Signed-off-by: John W. Linville

    Bruno Randolf