[RFC PATCH v2 0/4] riscv: Add numa support for riscv64 platform

From: Greentime Hu
Date: Fri Jan 10 2020 - 05:46:37 EST


riscv: Add numa support for riscv64 platform

This implementation is based on arm64 porting. It is tested with
qemu-system-riscv64, SiFive Unleashed board and OmniXtend FPGA platform.

There will be two nodes in /sys/devices/system/node if it is described in
dts and CONFIG_NUMA is enabled. We can use numastat/numactl/numademo to see
its status.

Changes in v2:
- split this patch to more patches to be more readable
- set cpu->hotplugable to 0 since it is not supported yet
- add more explanation for moving unflatten_device_tree() to paging_init()

Greentime Hu (4):
riscv: Add support pte_protnone and pmd_protnone if
CONFIG_NUMA_BALANCING
riscv: Move unflatten_device_tree() to paging_init() because
riscv_numa_init() needs the dt information.
riscv: Use variable this_cpu instead of smp_processor_id()
riscv: Add numa support for riscv64 platform

arch/riscv/Kconfig | 30 ++-
arch/riscv/include/asm/mmzone.h | 13 ++
arch/riscv/include/asm/numa.h | 46 ++++
arch/riscv/include/asm/pci.h | 10 +
arch/riscv/include/asm/pgtable.h | 20 ++
arch/riscv/kernel/setup.c | 26 ++-
arch/riscv/kernel/smpboot.c | 20 +-
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/init.c | 3 +
arch/riscv/mm/numa.c | 372 +++++++++++++++++++++++++++++++
10 files changed, 536 insertions(+), 5 deletions(-)
create mode 100644 arch/riscv/include/asm/mmzone.h
create mode 100644 arch/riscv/include/asm/numa.h
create mode 100644 arch/riscv/mm/numa.c

--
2.17.1