Re: [PATCH 6/7 v5] sh: fix Kconfig entry for NUMA => SMP

From: Geert Uytterhoeven
Date: Tue Mar 21 2023 - 03:55:40 EST


Hi Randy,

Thanks for your patch!

On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
> Fix SUPERH builds that select SYS_SUPPORTS_NUMA but do not select
> SYS_SUPPORTS_SMP and SMP.

Perhaps because these SoCs do not support SMP?

> kernel/sched/topology.c is only built for CONFIG_SMP and then the NUMA
> code + data inside topology.c is only built when CONFIG_NUMA is
> set/enabled, so these arch/sh/ configs need to select SMP and
> SYS_SUPPORTS_SMP to build the NUMA support.
>
> Fixes this build error in multiple SUPERH configs:
>
> mm/page_alloc.o: In function `get_page_from_freelist':
> page_alloc.c:(.text+0x2ca8): undefined reference to `node_reclaim_distance'
>
> Fixes: 357d59469c11 ("sh: Tidy up dependencies for SH-2 build.")
> Fixes: 9109a30e5a54 ("sh: add support for sh7366 processor")
> Fixes: 55ba99eb211a ("sh: Add support for SH7786 CPU subtype.")
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>

> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -442,6 +442,8 @@ config CPU_SUBTYPE_SH7785
> select CPU_SHX2
> select ARCH_SPARSEMEM_ENABLE
> select SYS_SUPPORTS_NUMA
> + select SYS_SUPPORTS_SMP
> + select SMP

SH7785 is single-core.

> select PINCTRL
>
> config CPU_SUBTYPE_SH7786
> @@ -476,6 +478,8 @@ config CPU_SUBTYPE_SH7722
> select CPU_SHX2
> select ARCH_SHMOBILE
> select ARCH_SPARSEMEM_ENABLE
> + select SYS_SUPPORTS_SMP
> + select SMP

SH7722 is single-core.

> select SYS_SUPPORTS_NUMA
> select SYS_SUPPORTS_SH_CMT
> select PINCTRL
> @@ -486,6 +490,8 @@ config CPU_SUBTYPE_SH7366
> select CPU_SHX2
> select ARCH_SHMOBILE
> select ARCH_SPARSEMEM_ENABLE
> + select SYS_SUPPORTS_SMP
> + select SMP

Dunno about this one (no public info available).

> select SYS_SUPPORTS_NUMA
> select SYS_SUPPORTS_SH_CMT

Wasn't this fixed by commit 61bb6cd2f765b90c ("mm: move
node_reclaim_distance to fix NUMA without SMP") in v5.16?

It is not sufficient, after that you run into:

mm/slab.c: In function ‘slab_memory_callback’:
mm/slab.c:1127:23: error: implicit declaration of function
‘init_cache_node_node’; did you mean ‘drain_cache_node_node’?
[-Werror=implicit-function-declaration]
1127 | ret = init_cache_node_node(nid);

which you reported before in
https://lore.kernel.org/all/b5bdea22-ed2f-3187-6efe-0c72330270a4@xxxxxxxxxxxxx/

Gr{oetje,eeting}s,

Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds