[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v1 00/21] ARM: Add Xen NUMA support
From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxx> With this RFC patch series, NUMA support is added for arm platform. Both DT and ACPI based NUMA support is added. Only Xen is made aware of NUMA platform. Dom0 is awareness is not added. As part of this series, the code under x86 architecture is reused by moving into common files. New files xen/common/numa.c and xen/commom/srat.c files are added which are common for both x86 and arm. Patches 1 - 12 & 20 are for DT NUMA and 13 - 19 & 21 are for ACPI NUMA. DT NUMA: The following major changes are performed - Dropped numa-node-id information from Dom0 DT. So that Dom0 devices make allocation from node 0 for devmalloc requests. - Memory DT is not deleted by EFI. It is exposed to Xen to extract numa information. - On NUMA failure, Fallback to Non-NUMA booting. Assuming all the memory and CPU's are under node 0. - CONFIG_NUMA is introduced. ACPI NUMA: - MADT is parsed before parsing SRAT table to extract CPU_ID to MPIDR mapping info. In Linux, while parsing SRAT table, MADT table is opened and extract MPIDR. However this approach is not working on Xen it allows only one table to be open at a time because when ACPI table is opened, Xen maps to single region. So opening ACPI tables recursively leads to overwriting of contents. - SRAT table is parsed for ACPI_SRAT_TYPE_GICC_AFFINITY to extract proximity info and MPIDR from CPU_ID to MPIDR mapping table. - SRAT table is parsed for ACPI_SRAT_TYPE_MEMORY_AFFINITY to extract memory proximity. - Re-use SLIT parsing of x86 for node distance information. - CONFIG_ACPI_NUMA is introduced The node_distance() API is implemented separately for x86 and arm as arm has DT and ACPI based distance information. No changes are made to x86 implementation only code is refactored. Hence only compilation tested for x86. Code is shared at https://github.com/vijaykilari/xen-numa rfc_1 Note: Please use this patch series only for review. For testing, patch to boot allocator is required. Which will be sent outside this series. Vijaya Kumar K (21): ARM: NUMA: Add existing ARM numa code under CONFIG_NUMA x86: NUMA: Refactor NUMA code NUMA: Move arch specific NUMA code as common NUMA: Refactor generic and arch specific code of numa_setup ARM: efi: Do not delete memory node from fdt ARM: NUMA: Parse CPU NUMA information ARM: NUMA: Parse memory NUMA information ARM: NUMA: Parse NUMA distance information ARM: NUMA: Add CPU NUMA support ARM: NUMA: Add memory NUMA support ARM: NUMA: Add fallback on NUMA failure ARM: NUMA: Do not expose numa info to DOM0 ACPI: Refactor acpi SRAT and SLIT table handling code ACPI: Move srat_disabled to common code ARM: NUMA: Extract MPIDR from MADT table ARM: NUMA: Extract proximity from SRAT table ARM: NUMA: Extract memory proximity from SRAT table ARM: NUMA: update node_distance with ACPI support ARM: NUMA: Initialize ACPI NUMA ARM: NUMA: Enable CONFIG_NUMA config ARM: NUMA: Enable CONFIG_ACPI_NUMA config xen/arch/arm/Kconfig | 5 + xen/arch/arm/Makefile | 3 + xen/arch/arm/acpi_numa.c | 257 +++++++++++++++++++++ xen/arch/arm/bootfdt.c | 21 +- xen/arch/arm/domain_build.c | 9 + xen/arch/arm/dt_numa.c | 244 ++++++++++++++++++++ xen/arch/arm/efi/efi-boot.h | 25 -- xen/arch/arm/numa.c | 249 ++++++++++++++++++++ xen/arch/arm/setup.c | 5 + xen/arch/arm/smpboot.c | 3 + xen/arch/x86/domain_build.c | 1 + xen/arch/x86/numa.c | 318 +------------------------- xen/arch/x86/physdev.c | 1 + xen/arch/x86/setup.c | 1 + xen/arch/x86/smpboot.c | 1 + xen/arch/x86/srat.c | 183 +-------------- xen/arch/x86/x86_64/mm.c | 1 + xen/common/Makefile | 2 + xen/common/numa.c | 439 ++++++++++++++++++++++++++++++++++++ xen/common/srat.c | 157 +++++++++++++ xen/drivers/acpi/numa.c | 37 +++ xen/drivers/acpi/osl.c | 2 + xen/drivers/passthrough/vtd/iommu.c | 1 + xen/include/acpi/actbl1.h | 17 +- xen/include/asm-arm/acpi.h | 2 + xen/include/asm-arm/numa.h | 41 ++++ xen/include/asm-x86/acpi.h | 2 - xen/include/asm-x86/numa.h | 53 +---- xen/include/xen/acpi.h | 39 ++++ xen/include/xen/device_tree.h | 7 + xen/include/xen/numa.h | 61 ++++- xen/include/xen/srat.h | 15 ++ 32 files changed, 1620 insertions(+), 582 deletions(-) create mode 100644 xen/arch/arm/acpi_numa.c create mode 100644 xen/arch/arm/dt_numa.c create mode 100644 xen/arch/arm/numa.c create mode 100644 xen/common/numa.c create mode 100644 xen/common/srat.c create mode 100644 xen/include/xen/srat.h -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |