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

From: John Paul Adrian Glaubitz
Date: Sun Mar 19 2023 - 16:20:59 EST


On Sun, 2023-03-05 at 20:00 -0800, Randy Dunlap wrote:
> Fix SUPERH builds that select SYS_SUPPORTS_NUMA but do not select
> SYS_SUPPORTS_SMP and 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")
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Cc: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx>
> Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
> Cc: Rich Felker <dalias@xxxxxxxx>
> Cc: linux-sh@xxxxxxxxxxxxxxx
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> v2: skipped
> v3: skipped
> v4: refresh & resend
>
> arch/sh/Kconfig | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff -- a/arch/sh/Kconfig b/arch/sh/Kconfig
> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -477,6 +477,8 @@ config CPU_SUBTYPE_SH7722
> select CPU_SHX2
> select ARCH_SHMOBILE
> select ARCH_SPARSEMEM_ENABLE
> + select SYS_SUPPORTS_SMP
> + select SMP
> select SYS_SUPPORTS_NUMA
> select SYS_SUPPORTS_SH_CMT
> select PINCTRL
> @@ -487,6 +489,8 @@ config CPU_SUBTYPE_SH7366
> select CPU_SHX2
> select ARCH_SHMOBILE
> select ARCH_SPARSEMEM_ENABLE
> + select SYS_SUPPORTS_SMP
> + select SMP
> select SYS_SUPPORTS_NUMA
> select SYS_SUPPORTS_SH_CMT
>

It seems that we need this change for these configurations as well:

- config CPU_SHX3
- config CPU_SUBTYPE_SH7785

Although I can trigger a build failure for CPU_SUBTYPE_SH7785 only when
setting CONFIG_NUMA=y:

CC net/ipv6/addrconf_core.o
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);
| ^~~~~~~~~~~~~~~~~~~~
| drain_cache_node_node

I would expect this error to be reproducible for CPU_SHX3 as well when
CONFIG_NUMA=y but CONFIG_SMP=n. But for some reason, I am not seeing
the error then.

Adrian

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913