Re: [PATCH 5.15 00/78] 5.15.55-rc1 review

From: Peter Zijlstra
Date: Thu Jul 14 2022 - 13:22:38 EST


On Thu, Jul 14, 2022 at 10:02:57AM -0700, Linus Torvalds wrote:

> I like Peter's more obvious use of FASTYOP_LENGTH, but this is just disgusting:
>
> #define FASTOP_SIZE (8 << ((FASTOP_LENGTH > 8) & 1) <<
> ((FASTOP_LENGTH > 16) & 1))
>
> I mean, I understand what it's doing, but just two lines above it the
> code has a "ilog2()" use that already depends on the fact that you can
> use ilog2() as a constant compile-time expression.
>
> And guess what? The code could just use roundup_pow_of_two(), which is
> designed exactly like ilog2() to be used for compile-time constant
> values.

But NR_FASTOP isn't used in ASM.

> So the code should just use
>
> #define FASTOP_SIZE roundup_pow_of_two(FASTOP_LENGTH)
>
> and be a lot more legible, wouldn't it?

If only :/ FASTOP_SIZE is used in ASM, which means we've got to play by
GNU-as rules, and them are aweful.