All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC/RFT PATCH v2 0/5] Unify NUMA implementation between ARM64 & RISC-V
@ 2020-09-12  1:34 ` Atish Patra
  0 siblings, 0 replies; 32+ messages in thread
From: Atish Patra @ 2020-09-12  1:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: Atish Patra, Albert Ou, Andrew Morton, Anshuman Khandual,
	Anup Patel, Arnd Bergmann, Catalin Marinas, David Hildenbrand,
	Greentime Hu, Bjorn Helgaas, Greg Kroah-Hartman, Jia He,
	linux-arch, linux-riscv, Mike Rapoport, Nicolas Saenz Julienne,
	Palmer Dabbelt, Paul Walmsley, Rafael J. Wysocki, Steven Price,
	Will Deacon, Zong Li, Jonathan Cameron

This series attempts to move the ARM64 numa implementation to common
code so that RISC-V can leverage that as well instead of reimplementing
it again.

RISC-V specific bits are based on initial work done by Greentime Hu [1] but
modified to reuse the common implementation to avoid duplication.

[1] https://lkml.org/lkml/2020/1/10/233

This series has been tested on qemu with numa enabled for both RISC-V & ARM64.
It would be great if somebody can test it on numa capable ARM64 hardware platforms.
This patch series doesn't modify the maintainers list for the common code (arch_numa)
as I am not sure if somebody from ARM64 community or Greg should take up the
maintainership. Ganapatrao was the original author of the arm64 version.
I would be happy to update that in the next revision once it is decided.

# numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3
node 0 size: 486 MB
node 0 free: 470 MB
node 1 cpus: 4 5 6 7
node 1 size: 424 MB
node 1 free: 408 MB
node distances:
node   0   1 
  0:  10  20 
  1:  20  10 
# numactl -show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5 6 7 
cpubind: 0 1 
nodebind: 0 1 
membind: 0 1 

For RISC-V, the following qemu series is a pre-requisite(already available in upstream)
to test the patches in Qemu and 2 socket OmniXtend FPGA.

https://patchwork.kernel.org/project/qemu-devel/list/?series=303313

The patches are also available at

https://github.com/atishp04/linux/tree/5.10_numa_unified_v2

There may be some minor conflicts with Mike's cleanup series [2] depending on the
order in which these two series are being accepted. I can rebase on top his series
if required.

[2] https://lkml.org/lkml/2020/8/18/754

Atish Patra (4):
numa: Move numa implementation to common code
arm64, numa: Change the numa init function name to be generic
riscv: Separate memory init from paging init
riscv: Add numa support for riscv64 platform

Greentime Hu (1):
riscv: Add support pte_protnone and pmd_protnone if
CONFIG_NUMA_BALANCING

arch/arm64/Kconfig                            |  1 +
arch/arm64/include/asm/numa.h                 | 45 +----------------
arch/arm64/kernel/acpi_numa.c                 | 13 -----
arch/arm64/mm/Makefile                        |  1 -
arch/arm64/mm/init.c                          |  4 +-
arch/riscv/Kconfig                            | 31 +++++++++++-
arch/riscv/include/asm/mmzone.h               | 13 +++++
arch/riscv/include/asm/numa.h                 |  8 +++
arch/riscv/include/asm/pci.h                  | 14 ++++++
arch/riscv/include/asm/pgtable.h              | 21 ++++++++
arch/riscv/kernel/setup.c                     | 11 ++++-
arch/riscv/kernel/smpboot.c                   | 12 ++++-
arch/riscv/mm/init.c                          | 10 +++-
drivers/base/Kconfig                          |  6 +++
drivers/base/Makefile                         |  1 +
.../mm/numa.c => drivers/base/arch_numa.c     | 29 +++++++++--
include/asm-generic/numa.h                    | 49 +++++++++++++++++++
17 files changed, 200 insertions(+), 69 deletions(-)
create mode 100644 arch/riscv/include/asm/mmzone.h
create mode 100644 arch/riscv/include/asm/numa.h
rename arch/arm64/mm/numa.c => drivers/base/arch_numa.c (95%)
create mode 100644 include/asm-generic/numa.h

--
2.24.0


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2020-09-18 19:18 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-12  1:34 [RFC/RFT PATCH v2 0/5] Unify NUMA implementation between ARM64 & RISC-V Atish Patra
2020-09-12  1:34 ` Atish Patra
2020-09-12  1:34 ` [RFC/RFT PATCH v2 1/5] numa: Move numa implementation to common code Atish Patra
2020-09-12  1:34   ` Atish Patra
2020-09-14 14:21   ` Jonathan Cameron
2020-09-14 14:21     ` Jonathan Cameron
2020-09-12  1:34 ` [RFC/RFT PATCH v2 2/5] arm64, numa: Change the numa init function name to be generic Atish Patra
2020-09-12  1:34   ` Atish Patra
2020-09-14 14:30   ` Jonathan Cameron
2020-09-14 14:30     ` Jonathan Cameron
2020-09-14 19:32     ` Atish Patra
2020-09-14 19:32       ` Atish Patra
2020-09-15  8:27       ` Jonathan Cameron
2020-09-15  8:27         ` Jonathan Cameron
2020-09-15  4:11   ` kernel test robot
2020-09-12  1:34 ` [RFC/RFT PATCH v2 3/5] riscv: Separate memory init from paging init Atish Patra
2020-09-12  1:34   ` Atish Patra
2020-09-12  2:10   ` Greentime Hu
2020-09-12  2:10     ` Greentime Hu
2020-09-12  1:34 ` [RFC/RFT PATCH v2 4/5] riscv: Add support pte_protnone and pmd_protnone if CONFIG_NUMA_BALANCING Atish Patra
2020-09-12  1:34   ` Atish Patra
2020-09-12  1:34 ` [RFC/RFT PATCH v2 5/5] riscv: Add numa support for riscv64 platform Atish Patra
2020-09-12  1:34   ` Atish Patra
2020-09-16 22:19   ` kernel test robot
2020-09-14  8:04 ` [RFC/RFT PATCH v2 0/5] Unify NUMA implementation between ARM64 & RISC-V Jonathan Cameron
2020-09-14  8:04   ` Jonathan Cameron
2020-09-14 19:33   ` Atish Patra
2020-09-14 19:33     ` Atish Patra
2020-09-18 16:05     ` Jonathan Cameron
2020-09-18 16:05       ` Jonathan Cameron
2020-09-18 19:18       ` Atish Patra
2020-09-18 19:18         ` Atish Patra

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.