Re: [PATCH] Optimize int_sqrt for small values for faster idle

From: Peter Zijlstra
Date: Thu Jul 20 2017 - 06:10:40 EST


On Mon, Feb 01, 2016 at 04:36:38PM -0800, Eric Dumazet wrote:
> On Tue, 2016-02-02 at 00:08 +0100, Rasmus Villemoes wrote:
>
> > Thanks. (Is there a good way to tell gcc that avg*avg is actually a
> > 32x32->64 multiplication?)
>
> If avg is 32bit, compiler does that for you.
>
> u32 avg = ...
>
> u64 result = (u64)avg * avg;

It does not in fact do that :/ See commit:

9e3d6223d209 ("math64, timers: Fix 32bit mul_u64_u32_shr() and friends")