[PATCH] NUMA: Early use of cpu_to_node() returns 0 instead of the correct node id
Shijie Huang
shijie at amperemail.onmicrosoft.com
Mon Jan 22 00:27:58 PST 2024
在 2024/1/22 15:41, Mike Rapoport 写道:
> On Fri, Jan 19, 2024 at 04:50:53PM +0800, Shijie Huang wrote:
>> 在 2024/1/19 16:42, Mike Rapoport 写道:
>>> Is there a fundamental reason to have early_cpu_to_node() at all?
>> The early_cpu_to_node does not work on some ARCHs (which support the NUMA),
>> such as SPARC, MIPS and S390.
> My question was why we need early_cpu_to_node() at all and why can't we use
> cpu_to_node() early on arches that do have it
As you see, some ARCHs use cpu_to_node() all the time, such as
SPARC,mips and S390.
They do not use early_cpu_to_node() at all.
In some ARCHs(arm64, powerpc riscv), the cpu_to_node() is ready at:
start_kernel --> arch_call_rest_init() --> rest_init()
--> kernel_init() --> kernel_init_freeable()
--> smp_prepare_cpus()
The cpu_to_node() is initialized too late.
I am not sure if we can move "cpu_to_node initialization" to an early place.
Move "cpu_to_node() initization" to an early place is more complicated,
I guess.
Thanks
Huang Shijie
More information about the linux-riscv
mailing list