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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Geert!

On Tue, 2023-03-21 at 08:55 +0100, Geert Uytterhoeven wrote:
> 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?

Well, there is actually a dual-core 7786 board available, see:

> https://www.apnet.co.jp/product/superh/ap-sh4ad-0a.html

Quoting:

»The SH7786 is equipped with a dual-core SH-4A and has interfaces such as
 DDR3 SDRAM, PCI Express, USB, and display unit.«

I seem to remember that Oleg Endo had such a dual-core SH4A board.

Also, the Sega Saturn had two SH-2 CPUs:

> https://en.wikipedia.org/wiki/Sega_Saturn#Technical_specifications

> > 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/

Without the patch, I am getting:

  CC      fs/fat/nfs.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

with make sh7785lcr_defconfig and CONFIG_NUMA=y.

With the patch, it builds fine for me.

FWIW, I just realized we need this for config CPU_SUBTYPE_SH7786 as well.

Adrian

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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux