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

From: Randy Dunlap
Date: Mon Mar 20 2023 - 16:17:25 EST




On 3/20/23 13:13, John Paul Adrian Glaubitz wrote:
> Hi Randy!
>
> On Sun, 2023-03-19 at 21:20 +0100, John Paul Adrian Glaubitz wrote:
>> 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.
>
> Can you make this change for config CPU_SUBTYPE_SH7785 as well?
>
> Then the change should be fine.

Will do. Thanks.

--
~Randy