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") Fixes: 55ba99eb211a ("sh: Add support for SH7786 CPU subtype.") 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: Kuninori Morimoto morimoto.kuninori@renesas.com Cc: linux-sh@vger.kernel.org Cc: stable@vger.kernel.org --- v2: skipped v3: skipped v4: refresh & resend v5: include CPU_SUBTYPE_SH7785 in this patch (Adrian)
arch/sh/Kconfig | 6 ++++++ 1 file changed, 6 insertions(+)
diff -- a/arch/sh/Kconfig b/arch/sh/Kconfig --- 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 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 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 select SYS_SUPPORTS_NUMA select SYS_SUPPORTS_SH_CMT
Hi Randy,
Thanks for your patch!
On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap rdunlap@infradead.org 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@infradead.org
--- 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@infradead.o...
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
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
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@infradead.org 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:
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@infradead.org
--- 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@infradead.o...
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
Hi Adrian,
On Tue, Mar 21, 2023 at 9:10 AM John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
On Tue, 2023-03-21 at 08:55 +0100, Geert Uytterhoeven wrote:
On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap rdunlap@infradead.org 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:
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
But these are not the Kconfig entries changed by Randy's patch.
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@infradead.org
--- 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@infradead.o...
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
Which is a different error than in this patch description? I am preparing a fix...
Gr{oetje,eeting}s,
Geert
On Tue, Mar 21, 2023 at 9:19 AM Geert Uytterhoeven geert@linux-m68k.org wrote:
On Tue, Mar 21, 2023 at 9:10 AM John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
On Tue, 2023-03-21 at 08:55 +0100, Geert Uytterhoeven wrote:
On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap rdunlap@infradead.org 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:
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
But these are not the Kconfig entries changed by Randy's patch.
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@infradead.org
--- 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@infradead.o...
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
Which is a different error than in this patch description? I am preparing a fix...
https://lore.kernel.org/67261c513706241d479b8b4cf46eb4e6fb0417ba.1679387262....
Gr{oetje,eeting}s,
Geert
On Mar 21, 2023, at 17:12, John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
Also, the Sega Saturn had two SH-2 CPUs
New hardware that runs linux is generally/all J2 SMP (dual core sh2 class).
J.
Hi Adrian,
On Tue, Mar 21, 2023 at 9:10 AM John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
On Tue, 2023-03-21 at 08:55 +0100, Geert Uytterhoeven wrote:
On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap rdunlap@infradead.org 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:
Quoting:
»The SH7786 is equipped with a dual-core SH-4A and has interfaces such as DDR3 SDRAM, PCI Express, USB, and display unit.«
SH7786 is dual-core...
FWIW, I just realized we need this for config CPU_SUBTYPE_SH7786 as well.
... and CPU_SUBTYPE_SH7786 selects CPU_SHX3, which selects SYS_SUPPORTS_SMP and SYS_SUPPORTS_NUMA in turn. So everything is fine for SH7786.
Gr{oetje,eeting}s,
Geert
Hi Geert!
On Tue, 2023-03-21 at 09:42 +0100, Geert Uytterhoeven wrote:
Hi Adrian,
On Tue, Mar 21, 2023 at 9:10 AM John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
On Tue, 2023-03-21 at 08:55 +0100, Geert Uytterhoeven wrote:
On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap rdunlap@infradead.org 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:
Quoting:
»The SH7786 is equipped with a dual-core SH-4A and has interfaces such as DDR3 SDRAM, PCI Express, USB, and display unit.«
SH7786 is dual-core...
FWIW, I just realized we need this for config CPU_SUBTYPE_SH7786 as well.
... and CPU_SUBTYPE_SH7786 selects CPU_SHX3, which selects SYS_SUPPORTS_SMP and SYS_SUPPORTS_NUMA in turn. So everything is fine for SH7786.
Yeah, this explains it then. Your new patch is definitely the better approach and I would prefer it over Randy's suggested change. Let's see what the mm maintainers have to say.
Thanks, Adrian
Hi Adrian,
On Tue, Mar 21, 2023 at 9:45 AM John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
On Tue, 2023-03-21 at 09:42 +0100, Geert Uytterhoeven wrote:
On Tue, Mar 21, 2023 at 9:10 AM John Paul Adrian Glaubitz glaubitz@physik.fu-berlin.de wrote:
On Tue, 2023-03-21 at 08:55 +0100, Geert Uytterhoeven wrote:
On Tue, Mar 21, 2023 at 12:13 AM Randy Dunlap rdunlap@infradead.org 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:
Quoting:
»The SH7786 is equipped with a dual-core SH-4A and has interfaces such as DDR3 SDRAM, PCI Express, USB, and display unit.«
SH7786 is dual-core...
FWIW, I just realized we need this for config CPU_SUBTYPE_SH7786 as well.
... and CPU_SUBTYPE_SH7786 selects CPU_SHX3, which selects SYS_SUPPORTS_SMP and SYS_SUPPORTS_NUMA in turn. So everything is fine for SH7786.
Yeah, this explains it then. Your new patch is definitely the better approach and I would prefer it over Randy's suggested change. Let's see what the mm maintainers have to say.
I'm sure the missed condition was just an oversight, so I expect no objections.
Gr{oetje,eeting}s,
Geert
Hi Geert!
On Tue, 2023-03-21 at 09:47 +0100, Geert Uytterhoeven wrote:
Yeah, this explains it then. Your new patch is definitely the better approach and I would prefer it over Randy's suggested change. Let's see what the mm maintainers have to say.
I'm sure the missed condition was just an oversight, so I expect no objections.
And you were right, of course. We can drop Randy's patch then, but I'll pick up all the other patches tomorrow when I prepare my for-next tree for 6.4.
Adrian
On 3/21/23 08:15, John Paul Adrian Glaubitz wrote:
Hi Geert!
On Tue, 2023-03-21 at 09:47 +0100, Geert Uytterhoeven wrote:
Yeah, this explains it then. Your new patch is definitely the better approach and I would prefer it over Randy's suggested change. Let's see what the mm maintainers have to say.
I'm sure the missed condition was just an oversight, so I expect no objections.
And you were right, of course. We can drop Randy's patch then, but I'll pick up all the other patches tomorrow when I prepare my for-next tree for 6.4.
Right, drop it.
Thanks, everyone.
linux-stable-mirror@lists.linaro.org