• R
    cpuidle: menu: avoid expensive square root computation · 7024b18c
    Rasmus Villemoes 提交于
    Computing the integer square root is a rather expensive operation, at
    least compared to doing a 64x64 -> 64 multiply (avg*avg) and, on 64
    bit platforms, doing an extra comparison to a constant (variance <=
    U64_MAX/36).
    
    On 64 bit platforms, this does mean that we add a restriction on the
    range of the variance where we end up using the estimate (since
    previously the stddev <= ULONG_MAX was a tautology), but on the other
    hand, we extend the range quite substantially on 32 bit platforms - in
    both cases, we now allow standard deviations up to 715 seconds, which
    is for example guaranteed if all observations are less than 1430
    seconds.
    Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    7024b18c
menu.c 14.8 KB