Re: [PATCH v3 1/2] mm: Optimize the ARCH_NEEDS_WEAK_PER_CPU logic for s390/alpha architectures

From: Suren Baghdasaryan
Date: Mon Jun 16 2025 - 19:49:59 EST


On Mon, Jun 16, 2025 at 1:55 AM Mike Rapoport <rppt@xxxxxxxxxx> wrote:
>
> On Mon, Jun 16, 2025 at 09:59:09AM +0200, David Hildenbrand wrote:
> > On 16.06.25 04:29, Hao Ge wrote:
> > > From: Hao Ge <gehao@xxxxxxxxxx>
> >
> > subject is misleading: we are not optimizing anything in this patch, do we?
> >
> > It should probably be called
> >
> > "mm/percpu: rename ARCH_NEEDS_WEAK_PER_CPU to MODULE_NEED_WEAK_PER_CPU" or
> > sth. like that.
> >
> >
> > > Add the ARCH_NEEDS_WEAK_PER_CPU option to the mm Kconfig file
> > > and enable it for the s390 and alpha architectures.
> > > And replace all instances of ARCH_NEEDS_WEAK_PER_CPU
> > > in the kernel code with MODULE_NEEDS_WEAK_PER_CPU.
> >
> > Most of the description here should likely go to patch #2. See below.
>
> ...
>
> > So what you could do is move the actual introduction of
> > CONFIG_ARCH_NEEDS_WEAK_PER_CPU to patch #2, where it is actually used, and
> > limit this patch to the rename.
> >
> > Similarly, teak the patch description to reflect only that.
>
> Right, if the patch only renames ARCH_NEEDS_WEAK_PER_CPU to
> MODULE_NEEDS_WEAK_PER_CPU the description can be as simple as
>
> mm/percpu: rename ARCH_NEEDS_WEAK_PER_CPU to MODULE_NEEDS_WEAK_PER_CPU
>
> as a preparation for introduction of CONFIG_ARCH_NEEDS_WEAK_PER_CPU.
> No functional changes.

Yeah, the title is misleading and the description is too complicated.

Mike's suggested title sounds better to me and for description I would
say something like:

ARCH_NEEDS_WEAK_PER_CPU is currently defined only for modules and
therefore fails to represent requirements of the architecture. This
prevents us using it for conditions which are applicable when building
both modules and the kernel. To handle such conditions, make it a
Kconfig option and add MODULE_NEEDS_WEAK_PER_CPU for the cases when
the condition applies only to modules.

And now that I'm looking at the change I realize that we probably
don't even need a separate MODULE_NEEDS_WEAK_PER_CPU. It will be used
only in one place and can be replaced with:

#if defined(CONFIG_ARCH_NEEDS_WEAK_PER_CPU) && defined(MODULE)

The code inside arch/{alpha|s390}/include/asm/percpu.h that defines
MODULE_NEEDS_WEAK_PER_CPU can be completely removed and in
arch/alpha/Kconfig you can have:

select ARCH_NEEDS_WEAK_PER_CPU if CONFIG_SMP

to preserve CONFIG_SMP dependency.
That seems to me like a nicer cleanup.

>
> > --
> > Cheers,
> >
> > David / dhildenb
> >
>
> --
> Sincerely yours,
> Mike.