2020-08-05 16:40:24

by Mike Rapoport

[permalink] [raw]
Subject: [PATCH] MIPS: SGI-IP27: always enable NUMA in Kconfig

From: Mike Rapoport <[email protected]>

When a configuration has NUMA disabled and SGI_IP27 enabled, the build
fails:

CC kernel/bounds.s
CC arch/mips/kernel/asm-offsets.s
In file included from arch/mips/include/asm/topology.h:11,
from include/linux/topology.h:36,
from include/linux/gfp.h:9,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from include/crypto/hash.h:11,
from include/linux/uio.h:10,
from include/linux/socket.h:8,
from include/linux/compat.h:15,
from arch/mips/kernel/asm-offsets.c:12:
include/linux/topology.h: In function 'numa_node_id':
arch/mips/include/asm/mach-ip27/topology.h:16:27: error: implicit declaration of function 'cputonasid'; did you mean 'cpu_vpe_id'? [-Werror=implicit-function-declaration]
#define cpu_to_node(cpu) (cputonasid(cpu))
^~~~~~~~~~
include/linux/topology.h:119:9: note: in expansion of macro 'cpu_to_node'
return cpu_to_node(raw_smp_processor_id());
^~~~~~~~~~~
include/linux/topology.h: In function 'cpu_cpu_mask':
arch/mips/include/asm/mach-ip27/topology.h:19:7: error: implicit declaration of function 'hub_data' [-Werror=implicit-function-declaration]
&hub_data(node)->h_cpus)
^~~~~~~~
include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
return cpumask_of_node(cpu_to_node(cpu));
^~~~~~~~~~~~~~~
arch/mips/include/asm/mach-ip27/topology.h:19:21: error: invalid type argument of '->' (have 'int')
&hub_data(node)->h_cpus)
^~
include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
return cpumask_of_node(cpu_to_node(cpu));
^~~~~~~~~~~~~~~

Before switch from discontigmem to sparsemem, there always was
CONFIG_NEED_MULTIPLE_NODES=y because it was selected by DISCONTIGMEM.
Without DISCONTIGMEM it is possible to have SPARSEMEM without NUMA for
SGI_IP27 and as many things there rely on custom node definition, the
build breaks.

As Thomas noted "... there are right now too many places in IP27 code,
which assumes NUMA enabled", the simplest solution would be to always
enable NUMA for SGI-IP27 builds.

Reported-by: kernel test robot <[email protected]>
Fixes: 397dc00e249e ("mips: sgi-ip27: switch from DISCONTIGMEM to SPARSEMEM")
Cc: [email protected]
Signed-off-by: Mike Rapoport <[email protected]>
---
arch/mips/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 6fee1a133e9d..a7e40bb1e5bc 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -678,6 +678,7 @@ config SGI_IP27
select SYS_SUPPORTS_NUMA
select SYS_SUPPORTS_SMP
select MIPS_L1_CACHE_SHIFT_7
+ select NUMA
help
This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
workstations. To compile a Linux kernel that runs on these, say Y
--
2.26.2


2020-08-06 00:44:49

by Joshua Kinard

[permalink] [raw]
Subject: Re: [PATCH] MIPS: SGI-IP27: always enable NUMA in Kconfig

On 8/5/2020 08:51, Mike Rapoport wrote:
> From: Mike Rapoport <[email protected]>
>
> When a configuration has NUMA disabled and SGI_IP27 enabled, the build
> fails:
>
> CC kernel/bounds.s
> CC arch/mips/kernel/asm-offsets.s
> In file included from arch/mips/include/asm/topology.h:11,
> from include/linux/topology.h:36,
> from include/linux/gfp.h:9,
> from include/linux/slab.h:15,
> from include/linux/crypto.h:19,
> from include/crypto/hash.h:11,
> from include/linux/uio.h:10,
> from include/linux/socket.h:8,
> from include/linux/compat.h:15,
> from arch/mips/kernel/asm-offsets.c:12:
> include/linux/topology.h: In function 'numa_node_id':
> arch/mips/include/asm/mach-ip27/topology.h:16:27: error: implicit declaration of function 'cputonasid'; did you mean 'cpu_vpe_id'? [-Werror=implicit-function-declaration]
> #define cpu_to_node(cpu) (cputonasid(cpu))
> ^~~~~~~~~~
> include/linux/topology.h:119:9: note: in expansion of macro 'cpu_to_node'
> return cpu_to_node(raw_smp_processor_id());
> ^~~~~~~~~~~
> include/linux/topology.h: In function 'cpu_cpu_mask':
> arch/mips/include/asm/mach-ip27/topology.h:19:7: error: implicit declaration of function 'hub_data' [-Werror=implicit-function-declaration]
> &hub_data(node)->h_cpus)
> ^~~~~~~~
> include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
> return cpumask_of_node(cpu_to_node(cpu));
> ^~~~~~~~~~~~~~~
> arch/mips/include/asm/mach-ip27/topology.h:19:21: error: invalid type argument of '->' (have 'int')
> &hub_data(node)->h_cpus)
> ^~
> include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
> return cpumask_of_node(cpu_to_node(cpu));
> ^~~~~~~~~~~~~~~
>
> Before switch from discontigmem to sparsemem, there always was
> CONFIG_NEED_MULTIPLE_NODES=y because it was selected by DISCONTIGMEM.
> Without DISCONTIGMEM it is possible to have SPARSEMEM without NUMA for
> SGI_IP27 and as many things there rely on custom node definition, the
> build breaks.
>
> As Thomas noted "... there are right now too many places in IP27 code,
> which assumes NUMA enabled", the simplest solution would be to always
> enable NUMA for SGI-IP27 builds.
>
> Reported-by: kernel test robot <[email protected]>
> Fixes: 397dc00e249e ("mips: sgi-ip27: switch from DISCONTIGMEM to SPARSEMEM")
> Cc: [email protected]
> Signed-off-by: Mike Rapoport <[email protected]>
> ---
> arch/mips/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index 6fee1a133e9d..a7e40bb1e5bc 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -678,6 +678,7 @@ config SGI_IP27
> select SYS_SUPPORTS_NUMA
> select SYS_SUPPORTS_SMP
> select MIPS_L1_CACHE_SHIFT_7
> + select NUMA
> help
> This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
> workstations. To compile a Linux kernel that runs on these, say Y
>

Reviewed-by: Joshua Kinard <[email protected]>

2020-08-06 08:10:18

by Thomas Bogendoerfer

[permalink] [raw]
Subject: Re: [PATCH] MIPS: SGI-IP27: always enable NUMA in Kconfig

On Wed, Aug 05, 2020 at 03:51:41PM +0300, Mike Rapoport wrote:
> From: Mike Rapoport <[email protected]>
>
> When a configuration has NUMA disabled and SGI_IP27 enabled, the build
> fails:
>
> CC kernel/bounds.s
> CC arch/mips/kernel/asm-offsets.s
> In file included from arch/mips/include/asm/topology.h:11,
> from include/linux/topology.h:36,
> from include/linux/gfp.h:9,
> from include/linux/slab.h:15,
> from include/linux/crypto.h:19,
> from include/crypto/hash.h:11,
> from include/linux/uio.h:10,
> from include/linux/socket.h:8,
> from include/linux/compat.h:15,
> from arch/mips/kernel/asm-offsets.c:12:
> include/linux/topology.h: In function 'numa_node_id':
> arch/mips/include/asm/mach-ip27/topology.h:16:27: error: implicit declaration of function 'cputonasid'; did you mean 'cpu_vpe_id'? [-Werror=implicit-function-declaration]
> #define cpu_to_node(cpu) (cputonasid(cpu))
> ^~~~~~~~~~
> include/linux/topology.h:119:9: note: in expansion of macro 'cpu_to_node'
> return cpu_to_node(raw_smp_processor_id());
> ^~~~~~~~~~~
> include/linux/topology.h: In function 'cpu_cpu_mask':
> arch/mips/include/asm/mach-ip27/topology.h:19:7: error: implicit declaration of function 'hub_data' [-Werror=implicit-function-declaration]
> &hub_data(node)->h_cpus)
> ^~~~~~~~
> include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
> return cpumask_of_node(cpu_to_node(cpu));
> ^~~~~~~~~~~~~~~
> arch/mips/include/asm/mach-ip27/topology.h:19:21: error: invalid type argument of '->' (have 'int')
> &hub_data(node)->h_cpus)
> ^~
> include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
> return cpumask_of_node(cpu_to_node(cpu));
> ^~~~~~~~~~~~~~~
>
> Before switch from discontigmem to sparsemem, there always was
> CONFIG_NEED_MULTIPLE_NODES=y because it was selected by DISCONTIGMEM.
> Without DISCONTIGMEM it is possible to have SPARSEMEM without NUMA for
> SGI_IP27 and as many things there rely on custom node definition, the
> build breaks.
>
> As Thomas noted "... there are right now too many places in IP27 code,
> which assumes NUMA enabled", the simplest solution would be to always
> enable NUMA for SGI-IP27 builds.
>
> Reported-by: kernel test robot <[email protected]>
> Fixes: 397dc00e249e ("mips: sgi-ip27: switch from DISCONTIGMEM to SPARSEMEM")
> Cc: [email protected]
> Signed-off-by: Mike Rapoport <[email protected]>
> ---
> arch/mips/Kconfig | 1 +
> 1 file changed, 1 insertion(+)

applied to mips-next.

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]