Message ID | 20240220113602.6943-1-rongwei.wang@linux.alibaba.com (mailing list archive) |
---|---|
Headers | show |
Series | support NUMA emulation for genertic arch | expand |
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. > 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@linux.alibaba.com/ > > 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 > >
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@linux.alibaba.com/ >> >> 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 >> >> >
On 2/21/24 11:51 PM, Pierre Gondois wrote: > > > 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. Hi Pierre > 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 Thanks, my fault, zhaoyu also found this (thanks). > - 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 > Actually, I have not think about how to ask the question. I'm also try to original direction like RFC version, but found much APIs need to be updated, and there are many APIs are similar but a little difference. That seems much modification needed in more than one arch if go in original direction. But if all think original method is right, I will continue it in RFC version. Thanks for your time to review. > 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@linux.alibaba.com/ >>> >>> 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 >>> >>> >>