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

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

 





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







[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux