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

Message ID 20230306040037.20350-7-rdunlap@infradead.org
State New
Headers
Series sh: various doc, build, init fixes |

Commit Message

Randy Dunlap March 6, 2023, 4 a.m. UTC
  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@infradead.org>
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Rich Felker <dalias@libc.org>
Cc: linux-sh@vger.kernel.org
Cc: stable@vger.kernel.org
---
v2: skipped
v3: skipped
v4: refresh & resend

 arch/sh/Kconfig |    4 ++++
 1 file changed, 4 insertions(+)
  

Comments

John Paul Adrian Glaubitz March 19, 2023, 8:20 p.m. UTC | #1
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@infradead.org>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
> Cc: Rich Felker <dalias@libc.org>
> Cc: linux-sh@vger.kernel.org
> Cc: stable@vger.kernel.org
> ---
> 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 March 20, 2023, 8:13 p.m. UTC | #2
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@infradead.org>
> > Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> > Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> > Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
> > Cc: Rich Felker <dalias@libc.org>
> > Cc: linux-sh@vger.kernel.org
> > Cc: stable@vger.kernel.org
> > ---
> > 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.

Adrian
  
Randy Dunlap March 20, 2023, 8:17 p.m. UTC | #3
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@infradead.org>
>>> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
>>> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
>>> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
>>> Cc: Rich Felker <dalias@libc.org>
>>> Cc: linux-sh@vger.kernel.org
>>> Cc: stable@vger.kernel.org
>>> ---
>>> 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.
  

Patch

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