From: Shannon Zhao <shannon.z...@linaro.org> Add NUMA support for machine virt. Tested successfully running a guest Linux kernel with the following patch applied:
- [PATCH v9 0/6] arm64, numa: Add numa support for arm64 platforms https://lwn.net/Articles/672329/ - [PATCH v2 0/4] ACPI based NUMA support for ARM64 http://www.spinics.net/lists/linux-acpi/msg61795.html Changes since v3: * based on new kernel driver and device bindings * add ACPI part Changes since v2: * update to use NUMA node property arm,associativity. Changes since v1: Take into account Peter's comments: * rename virt_memory_init to arm_generate_memory_dtb * move arm_generate_memory_dtb to boot.c and make it a common func * use a struct numa_map to generate numa dtb Example qemu command line: qemu-system-aarch64 \ -enable-kvm -smp 4\ -kernel Image \ -m 512 -machine virt,kernel_irqchip=on \ -initrd guestfs.cpio.gz \ -cpu host -nographic \ -numa node,mem=256M,cpus=0-1,nodeid=0 \ -numa node,mem=256M,cpus=2-3,nodeid=1 \ -append "console=ttyAMA0 root=/dev/ram" Shannon Zhao (5): ARM: Virt: Add /distance-map node for NUMA ARM: Virt: Set numa-node-id for CPUs ARM: Add numa-node-id for /memory node include/hw/acpi/acpi-defs: Add GICC Affinity Structure hw/arm/virt-acpi-build: Generate SRAT table hw/arm/boot.c | 29 ++++++++++++++++++++++- hw/arm/virt-acpi-build.c | 58 +++++++++++++++++++++++++++++++++++++++++++++ hw/arm/virt.c | 37 +++++++++++++++++++++++++++++ hw/i386/acpi-build.c | 2 +- include/hw/acpi/acpi-defs.h | 15 +++++++++++- 5 files changed, 138 insertions(+), 3 deletions(-) -- 2.0.4