lkml.org 
[lkml]   [2020]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] MIPS: Loongson64: Give chance to build under !CONFIG_NUMA and !CONFIG_SMP
From
Date
On 12/15/2020 09:21 PM, Thomas Bogendoerfer wrote:
> On Thu, Dec 03, 2020 at 08:32:52PM +0800, Tiezhu Yang wrote:
>> In the current code, we can not build under !CONFIG_NUMA and !CONFIG_SMP
>> on the Loongson64 platform, it seems bad for the users who just want to
>> use pure single core (not nosmp) to debug, so do the following things to
>> give them a chance:
>>
>> (1) Do not select NUMA and SMP for MACH_LOONGSON64 in Kconfig, make NUMA
>> depends on SMP, and then just set them in the loongson3_defconfig.
>> (2) Move szmem() from numa.c to init.c and add prom_init_memory() under
>> !CONFIG_NUMA.
>> (3) Clean up szmem() due to the statements of case SYSTEM_RAM_LOW and
>> SYSTEM_RAM_HIGH are the same.
>> (4) Remove the useless declaration of prom_init_memory() and add the
>> declaration of szmem() in loongson.h to avoid build error.
>>
>> Signed-off-by: Youling Tang <tangyouling@loongson.cn>
>> Signed-off-by: Jinyang He <hejinyang@loongson.cn>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>> ---
>> arch/mips/Kconfig | 3 +-
>> arch/mips/configs/loongson3_defconfig | 2 +
>> arch/mips/include/asm/mach-loongson64/loongson.h | 2 +-
>> arch/mips/loongson64/init.c | 49 ++++++++++++++++++++++
>> arch/mips/loongson64/numa.c | 52 +-----------------------
>> 5 files changed, 54 insertions(+), 54 deletions(-)
>>
>> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
>> index 44a47ad..2034c66 100644
>> --- a/arch/mips/Kconfig
>> +++ b/arch/mips/Kconfig
>> @@ -490,8 +490,6 @@ config MACH_LOONGSON64
>> select SYS_SUPPORTS_ZBOOT
>> select SYS_SUPPORTS_RELOCATABLE
>> select ZONE_DMA32
>> - select NUMA
>> - select SMP
>> select COMMON_CLK
>> select USE_OF
>> select BUILTIN_DTB
>> @@ -2755,6 +2753,7 @@ config ARCH_SPARSEMEM_ENABLE
>> config NUMA
>> bool "NUMA Support"
>> depends on SYS_SUPPORTS_NUMA
>> + depends on SMP
> can you solve your problem without this hunk ? I don't want to make NUMA
> depeding on SMP. NUMA just selects memory archtitecture.

Hi Thomas,

I have tested the following three configs on the Loongson platform:
(1) !NUMA and !SMP,
(2) !NUMA and SMP,
(3) NUMA and SMP,
everything is all right.

But there exists the following build error under NUMA and !SMP:

CC arch/mips/kernel/asm-offsets.s
In file included from ./include/linux/gfp.h:9:0,
from ./include/linux/xarray.h:14,
from ./include/linux/radix-tree.h:19,
from ./include/linux/fs.h:15,
from ./include/linux/compat.h:17,
from arch/mips/kernel/asm-offsets.c:12:
./include/linux/topology.h: In function ‘numa_node_id’:
./include/linux/topology.h:119:2: error: implicit declaration of
function ‘cpu_logical_map’ [-Werror=implicit-function-declaration]
return cpu_to_node(raw_smp_processor_id());
^
cc1: some warnings being treated as errors
scripts/Makefile.build:117: recipe for target
'arch/mips/kernel/asm-offsets.s' failed
make[1]: *** [arch/mips/kernel/asm-offsets.s] Error 1
arch/mips/Makefile:396: recipe for target 'archprepare' failed
make: *** [archprepare] Error 2

I find a patch to fix this kind of build errors [1], but it seems
meaningless.

According to the NUMA and SMP description in arch/mips/Kconfig,
we will use only one CPU of a multiprocessor machine if !SMP,
on single node systems leave NUMA disabled.

So I think there is no need to use NUMA if !SMP, and also we should
make NUMA depend on SMP to avoid build errors.

Thanks,
Tiezhu

[1] MIPS: Loongson: Fix complie errors without CONFIG_SMP
https://lore.kernel.org/patchwork/patch/1295704/

>
> Thomas.
>

\
 
 \ /
  Last update: 2020-12-16 03:46    [W:0.049 / U:0.776 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site