Re: [PATCH 1/2] lib: Proportions with flexible period

From: Jan Kara
Date: Fri May 18 2012 - 10:33:25 EST


On Thu 17-05-12 23:35:12, Peter Zijlstra wrote:
> On Tue, 2012-05-15 at 17:43 +0200, Jan Kara wrote:
> > + if (numerator > ((long long)denominator) * max_frac / 100)
>
> Does that even compile on 32bit archs?
>
> Operator precedence is *,/ left-to-right, so that's:
>
> long long t1 = (long long)denom * max_frac
> long long t2 = t1 / 100;
>
> Which is a 64bit signed division.
>
> There's a reason I used that max_prop_frac thing you removed, it avoids
> having to do the division at all and allows a mult and shift instead.
Yeah, I misunderstood it's purpose when I read the code originally. I'll
put it back to avoid the division since this is a hot path.

Honza
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/