[PATCH v3] NUMA: Early use of cpu_to_node() returns 0 instead of the correct node id

Andrew Morton akpm at linux-foundation.org
Thu Mar 28 05:17:40 AEDT 2024


On Fri, 26 Jan 2024 14:44:51 +0800 Huang Shijie <shijie at os.amperecomputing.com> wrote:

> During the kernel booting, the generic cpu_to_node() is called too early in
> arm64, powerpc and riscv when CONFIG_NUMA is enabled.
> 
> There are at least four places in the common code where
> the generic cpu_to_node() is called before it is initialized:
> 	   1.) early_trace_init()         in kernel/trace/trace.c
> 	   2.) sched_init()               in kernel/sched/core.c
> 	   3.) init_sched_fair_class()    in kernel/sched/fair.c
> 	   4.) workqueue_init_early()     in kernel/workqueue.c
> 
> In order to fix the bug, the patch introduces early_numa_node_init()
> which is called after smp_prepare_boot_cpu() in start_kernel.
> early_numa_node_init will initialize the "numa_node" as soon as
> the early_cpu_to_node() is ready, before the cpu_to_node() is called
> at the first time.

What are the userspace-visible runtime effects of this bug?




More information about the Linuxppc-dev mailing list