Re: [PATCH 1/2] cpuidle: menu: avoid expensive square root computation

From: Rafael J. Wysocki
Date: Tue Feb 16 2016 - 18:20:34 EST


On 2/16/2016 8:19 PM, Rasmus Villemoes wrote:
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: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>

Both patches look good to me, so I'm going to queue them up for 4.6.

If anyone has any issues with that, please let me know.

Thanks,
Rafael