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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




在 2024/3/28 2:17, Andrew Morton 写道:
On Fri, 26 Jan 2024 14:44:51 +0800 Huang Shijie <shijie@xxxxxxxxxxxxxxxxxxxxxx> 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?

For this bug, I do not see too much performance impact in the userspace applications.

It just pollutes the CPU caches in NUMA.


Thanks

Huang Shijie






[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux