From: vijay.kilari@gmail.com
To: xen-devel@lists.xen.org
Cc: kevin.tian@intel.com, sstabellini@kernel.org,
wei.liu2@citrix.com, George.Dunlap@eu.citrix.com,
andrew.cooper3@citrix.com, dario.faggioli@citrix.com,
ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com,
jbeulich@suse.com, Vijaya Kumar K <Vijaya.Kumar@cavium.com>
Subject: [RFC PATCH v3 00/24] ARM: Add Xen NUMA support
Date: Tue, 18 Jul 2017 17:11:22 +0530 [thread overview]
Message-ID: <1500378106-2620-1-git-send-email-vijay.kilari@gmail.com> (raw)
From: Vijaya Kumar K <Vijaya.Kumar@cavium.com>
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. NUMA awareness to DOM0 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/drivers/acpi/srat.c files are
added.
For ARM specific new folder is added xen/arch/arm/numa and new files
numa.c, dt_numa.c and acpi_numa are introduced under this folder.
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.ACPI_SRAT_TYPE_MEMORY_AFFINITY
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. This
approach avoids opening ACPI tables recursively.
- SRAT table is parsed for ACPI_SRAT_TYPE_GICC_AFFINITY to extract
proximity info and MPIDR from CPU_ID to MPIDR mapping table.
- Parsing of SRAT table for ACPI_SRAT_TYPE_MEMORY_AFFINITY to extract
memory proximity is reused from x86 arch.
- Re-use SLIT parsing of x86 for node distance information.
- CONFIG_ACPI_NUMA is introduced
This patch is tested on Thunderx platform.
No changes are made to x86 implementation only code is sanitized
and refactored. Hence only compilation tested for x86.
This series is posted as RFC for the reason that it is not tested
on x86. Request some help from community in testing this series on x86.
Code is shared at
https://github.com/vijaykilari/xen-numa/commits/rfc_v3
v3: Major changes
- Rebased to latest staging branch
- Dropped patches 4 & 5 of v2.
- Reused most of the x86 code like numa emulation, acpi
memory node parsing by moving to common code.
- Fixed cpu node parsing with DT.
- Made NR_NODES as configurable
- Dropped hardcoding of memnodemap[] array size
- Segregated new dt functions to single patch 11
- Introduced new patch 10 for NUMA initialization.
v2: Major changes
- Rebased to lastest staging branch
- Reworked on x86 NUMA code and cleanup to possible extent.
Patches 1 to 8 are created for this
- Reworked on DT and ACPI NUMA extracting information
- Reused DT code for memory node processing to extract NUMA info.
- Fixed issues with DT processing
- Added arch specific processing of SRAT
- Reworked on MADT and SRAT processing
- Reworked on node distance
- All ARM changes are moved under folder arch/arm/numa.
- NUMA ACPI common changes are kept in drivers/acpi/srat.c
Vijaya Kumar K (24):
NUMA: Make number of NUMA nodes configurable
x86: NUMA: Clean up: Fix coding styles and drop unused code
x86: NUMA: Fix datatypes and attributes
x86: NUMA: Rename and sanitize memnode shift code
x86: NUMA: Add accessors for nodes[] and node_memblk_range[] structs
x86: NUMA: Rename some generic functions
ARM: NUMA: Add existing ARM numa code under CONFIG_NUMA
NUMA: x86: Move numa code and make it generic
NUMA: x86: Move common code from srat.c
NUMA: Allow numa initialization with DT
ARM: fdt: Export and introduce new fdt functions
ARM: NUMA: DT: Parse CPU NUMA information
ARM: NUMA: DT: Parse memory NUMA information
ARM: NUMA: DT: Parse NUMA distance information
ARM: NUMA: DT: Add CPU NUMA support
ARM: NUMA: Add memory NUMA support
ARM: NUMA: DT: Do not expose numa info to DOM0
ACPI: Refactor acpi SRAT and SLIT table handling code
ARM: NUMA: Extract MPIDR from MADT table
ACPI: Move arch specific SRAT parsing
ARM: NUMA: ACPI: Extract proximity from SRAT table
ARM: NUMA: Initialize ACPI NUMA
NUMA: Move CONFIG_NUMA to common Kconfig
NUMA: Enable ACPI_NUMA config
xen/arch/Kconfig | 7 +
xen/arch/arm/Makefile | 1 +
xen/arch/arm/acpi/boot.c | 2 +
xen/arch/arm/bootfdt.c | 45 ++-
xen/arch/arm/domain_build.c | 9 +
xen/arch/arm/efi/efi-boot.h | 25 --
xen/arch/arm/numa/Makefile | 3 +
xen/arch/arm/numa/acpi_numa.c | 246 +++++++++++++
xen/arch/arm/numa/dt_numa.c | 240 +++++++++++++
xen/arch/arm/numa/numa.c | 188 ++++++++++
xen/arch/arm/setup.c | 6 +
xen/arch/arm/smpboot.c | 25 +-
xen/arch/x86/dom0_build.c | 1 +
xen/arch/x86/mm.c | 2 -
xen/arch/x86/numa.c | 463 +------------------------
xen/arch/x86/physdev.c | 1 +
xen/arch/x86/setup.c | 1 +
xen/arch/x86/smpboot.c | 4 +-
xen/arch/x86/srat.c | 405 ++++------------------
xen/arch/x86/x86_64/mm.c | 3 +-
xen/common/Kconfig | 4 +
xen/common/Makefile | 1 +
xen/common/numa.c | 670 ++++++++++++++++++++++++++++++++++++
xen/drivers/acpi/Kconfig | 5 +-
xen/drivers/acpi/Makefile | 1 +
xen/drivers/acpi/numa.c | 58 +---
xen/drivers/acpi/srat.c | 298 ++++++++++++++++
xen/drivers/passthrough/vtd/iommu.c | 1 +
xen/include/acpi/actbl1.h | 17 +-
xen/include/acpi/srat.h | 24 ++
xen/include/asm-arm/numa.h | 33 +-
xen/include/asm-arm/setup.h | 5 +
xen/include/asm-x86/acpi.h | 4 -
xen/include/asm-x86/config.h | 1 -
xen/include/asm-x86/numa.h | 73 +---
xen/include/asm-x86/setup.h | 1 -
xen/include/xen/acpi.h | 6 +
xen/include/xen/config.h | 1 +
xen/include/xen/nodemask.h | 2 +
xen/include/xen/numa.h | 79 ++++-
40 files changed, 2002 insertions(+), 959 deletions(-)
create mode 100644 xen/arch/arm/numa/Makefile
create mode 100644 xen/arch/arm/numa/acpi_numa.c
create mode 100644 xen/arch/arm/numa/dt_numa.c
create mode 100644 xen/arch/arm/numa/numa.c
create mode 100644 xen/common/numa.c
create mode 100644 xen/drivers/acpi/srat.c
create mode 100644 xen/include/acpi/srat.h
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next reply other threads:[~2017-07-18 11:41 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-18 11:41 vijay.kilari [this message]
2017-07-18 11:41 ` [RFC PATCH v3 01/24] NUMA: Make number of NUMA nodes configurable vijay.kilari
2017-07-18 15:29 ` Wei Liu
2017-07-18 17:52 ` Julien Grall
2017-07-19 8:17 ` Wei Liu
2017-07-19 15:48 ` Julien Grall
2017-07-28 10:11 ` Jan Beulich
2017-07-18 17:55 ` Julien Grall
2017-07-19 7:00 ` Vijay Kilari
2017-07-19 15:55 ` Julien Grall
2017-07-20 7:30 ` Vijay Kilari
2017-07-20 10:57 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 02/24] x86: NUMA: Clean up: Fix coding styles and drop unused code vijay.kilari
2017-07-19 16:23 ` Julien Grall
2017-07-19 16:27 ` Wei Liu
2017-07-19 16:34 ` Julien Grall
2017-07-20 7:00 ` Vijay Kilari
2017-07-20 11:00 ` Julien Grall
2017-07-20 12:05 ` Vijay Kilari
2017-07-20 12:09 ` Julien Grall
2017-07-20 12:29 ` Vijay Kilari
2017-07-20 12:33 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 03/24] x86: NUMA: Fix datatypes and attributes vijay.kilari
2017-07-18 15:29 ` Wei Liu
2017-07-18 11:41 ` [RFC PATCH v3 04/24] x86: NUMA: Rename and sanitize memnode shift code vijay.kilari
2017-07-18 15:29 ` Wei Liu
2017-07-19 17:12 ` Julien Grall
2017-07-20 6:56 ` Vijay Kilari
2017-07-18 11:41 ` [RFC PATCH v3 05/24] x86: NUMA: Add accessors for nodes[] and node_memblk_range[] structs vijay.kilari
2017-07-18 15:29 ` Wei Liu
2017-07-19 6:40 ` Vijay Kilari
2017-07-19 17:18 ` Julien Grall
2017-07-20 7:41 ` Vijay Kilari
2017-07-20 11:03 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 06/24] x86: NUMA: Rename some generic functions vijay.kilari
2017-07-19 17:23 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 07/24] ARM: NUMA: Add existing ARM numa code under CONFIG_NUMA vijay.kilari
2017-07-18 18:06 ` Julien Grall
2017-07-20 9:31 ` Vijay Kilari
2017-07-20 11:10 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 08/24] NUMA: x86: Move numa code and make it generic vijay.kilari
2017-07-18 15:29 ` Wei Liu
2017-07-18 18:16 ` Julien Grall
2017-07-19 6:47 ` Vijay Kilari
2017-07-19 17:41 ` Julien Grall
2017-07-20 8:55 ` Vijay Kilari
2017-07-20 11:14 ` Julien Grall
2017-07-24 20:28 ` Stefano Stabellini
2017-07-18 11:41 ` [RFC PATCH v3 09/24] NUMA: x86: Move common code from srat.c vijay.kilari
2017-07-20 11:17 ` Julien Grall
2017-07-20 11:43 ` Vijay Kilari
2017-07-24 20:35 ` Stefano Stabellini
2017-07-18 11:41 ` [RFC PATCH v3 10/24] NUMA: Allow numa initialization with DT vijay.kilari
2017-07-19 17:58 ` Julien Grall
2017-07-20 10:28 ` Vijay Kilari
2017-07-20 11:20 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 11/24] ARM: fdt: Export and introduce new fdt functions vijay.kilari
2017-07-18 15:29 ` Wei Liu
2017-07-18 16:29 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 12/24] ARM: NUMA: DT: Parse CPU NUMA information vijay.kilari
2017-07-19 18:26 ` Julien Grall
2017-07-20 9:20 ` Vijay Kilari
2017-07-18 11:41 ` [RFC PATCH v3 13/24] ARM: NUMA: DT: Parse memory " vijay.kilari
2017-07-19 18:39 ` Julien Grall
2017-07-20 10:37 ` Vijay Kilari
2017-07-20 11:24 ` Julien Grall
2017-07-20 11:26 ` Julien Grall
2017-07-21 11:10 ` Vijay Kilari
2017-07-21 12:35 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 14/24] ARM: NUMA: DT: Parse NUMA distance information vijay.kilari
2017-07-20 13:02 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 15/24] ARM: NUMA: DT: Add CPU NUMA support vijay.kilari
2017-07-24 11:24 ` Julien Grall
2017-07-25 6:47 ` Vijay Kilari
2017-07-25 18:38 ` Julien Grall
2017-07-25 18:48 ` Stefano Stabellini
2017-07-25 18:51 ` Julien Grall
2017-07-25 19:06 ` Stefano Stabellini
2017-07-26 17:18 ` Julien Grall
2017-07-26 17:21 ` Stefano Stabellini
2017-07-18 11:41 ` [RFC PATCH v3 16/24] ARM: NUMA: Add memory " vijay.kilari
2017-07-24 12:43 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 17/24] ARM: NUMA: DT: Do not expose numa info to DOM0 vijay.kilari
2017-07-24 20:48 ` Stefano Stabellini
2017-07-26 17:22 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 18/24] ACPI: Refactor acpi SRAT and SLIT table handling code vijay.kilari
2017-07-18 15:36 ` Wei Liu
2017-07-19 6:33 ` Vijay Kilari
2017-07-18 11:41 ` [RFC PATCH v3 19/24] ARM: NUMA: Extract MPIDR from MADT table vijay.kilari
2017-07-24 22:17 ` Stefano Stabellini
2017-07-26 18:12 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 20/24] ACPI: Move arch specific SRAT parsing vijay.kilari
2017-07-24 21:15 ` Stefano Stabellini
2017-07-18 11:41 ` [RFC PATCH v3 21/24] ARM: NUMA: ACPI: Extract proximity from SRAT table vijay.kilari
2017-07-24 22:17 ` Stefano Stabellini
2017-07-26 18:18 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 22/24] ARM: NUMA: Initialize ACPI NUMA vijay.kilari
2017-07-24 22:11 ` Stefano Stabellini
2017-07-26 18:23 ` Julien Grall
2017-07-18 11:41 ` [RFC PATCH v3 23/24] NUMA: Move CONFIG_NUMA to common Kconfig vijay.kilari
2017-07-18 16:25 ` Julien Grall
2017-07-18 18:00 ` Julien Grall
2017-07-28 10:08 ` Jan Beulich
2017-07-18 11:41 ` [RFC PATCH v3 24/24] NUMA: Enable ACPI_NUMA config vijay.kilari
2017-07-18 16:18 ` [RFC PATCH v3 00/24] ARM: Add Xen NUMA support Julien Grall
2017-07-19 6:31 ` Vijay Kilari
2017-07-19 7:18 ` Julien Grall
[not found] ` <CALicx6svuo3JXik=8bYuciFzWDu6qmwVi1VXdBgjLp_f_YUhqQ@mail.gmail.com>
2017-10-06 17:09 ` vkilari
2017-10-06 17:30 ` Julien Grall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1500378106-2620-1-git-send-email-vijay.kilari@gmail.com \
--to=vijay.kilari@gmail.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=Vijaya.Kumar@cavium.com \
--cc=andrew.cooper3@citrix.com \
--cc=dario.faggioli@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=julien.grall@arm.com \
--cc=kevin.tian@intel.com \
--cc=sstabellini@kernel.org \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).