Re: [PATCH v1 0/2] support NUMA emulation for genertic arch

From: Pierre Gondois
Date: Wed Feb 21 2024 - 10:52:27 EST




On 2/21/24 07:12, Mike Rapoport wrote:
On Tue, Feb 20, 2024 at 07:36:00PM +0800, Rongwei Wang wrote:
A brief introduction
====================

The NUMA emulation can fake more node base on a single
node system, e.g.

...
Lastly, it seems not a good choice to realize x86 and other genertic
archs separately. But it can indeed avoid some architecture related
APIs adjustments and alleviate future maintenance.

Why is it a good choice? Copying 1k lines from x86 to a new place and
having to maintain two copies does not sound like a good choice to me.

I agree it would be better to avoid duplication and extract the common
code from the original x86 implementation. The RFC seemed to go more
in this direction.
Also NITs:
- genertic -> generic
- there is a 'ifdef CONFIG_X86' in drivers/base/numa_emulation.c,
but the file should not be used by x86 as the arch doesn't set
CONFIG_GENERIC_ARCH_NUMA

Regards,
Pierre


The previous RFC link see [1].

Any advice are welcome, Thanks!

Change log
==========

RFC v1 -> v1
* add new CONFIG_NUMA_FAKE for genertic archs.
* keep x86 implementation, realize numa emulation in driver/base/ for
genertic arch, e.g, arm64.

[1] RFC v1: https://patchwork.kernel.org/project/linux-arm-kernel/cover/20231012024842.99703-1-rongwei.wang@xxxxxxxxxxxxxxxxx/

Rongwei Wang (2):
arch_numa: remove __init for early_cpu_to_node
numa: introduce numa emulation for genertic arch

drivers/base/Kconfig | 9 +
drivers/base/Makefile | 1 +
drivers/base/arch_numa.c | 32 +-
drivers/base/numa_emulation.c | 909 ++++++++++++++++++++++++++++++++++
drivers/base/numa_emulation.h | 41 ++
include/asm-generic/numa.h | 2 +-
6 files changed, 992 insertions(+), 2 deletions(-)
create mode 100644 drivers/base/numa_emulation.c
create mode 100644 drivers/base/numa_emulation.h

--
2.32.0.3.gf3a3e56d6