Re: [PATCH v2 1/8] minmax: Put all the clamp() definitions together

From: Linus Torvalds
Date: Sun Jul 28 2024 - 16:32:42 EST


On Sun, 28 Jul 2024 at 13:23, David Laight <David.Laight@xxxxxxxxxx> wrote:
>
> MIN() (and probably your MIN_T()) ought to have a check for
> being a constant in order to stop misuse.

No, we have a number of "runtime constants" that are basically
"constants" set up at boot-time for the architecture,as pointed out by
the powerpc people in private:

Ie, we have arch/powerpc/include/asm/page.h:

#define HPAGE_SHIFT hpage_shift

and then

#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)

and then

#define pageblock_order MIN_T(unsigned int,
HUGETLB_PAGE_ORDER, MAX_PAGE_ORDER)

and we really *REALLY* don't want to force the complicated "min_t()"
(or, worse yet, "min()") functions here just because there's actually
a variable involved.

That variable gets initialized early in
hugetlbpage_init_defaultsize(), so it's *effectively* a constant, but
not as far as the compiler is concerned.

Linus