From: vijay.kilari@gmail.com
To: julien.grall@arm.com, sstabellini@kernel.org,
andre.przywara@arm.com, dario.faggioli@citrix.com
Cc: xen-devel@lists.xenproject.org, Vijaya Kumar K <Vijaya.Kumar@cavium.com>
Subject: [RFC PATCH v1 00/21] ARM: Add Xen NUMA support
Date: Thu, 9 Feb 2017 21:26:52 +0530 [thread overview]
Message-ID: <1486655834-9708-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. 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@lists.xen.org
https://lists.xen.org/xen-devel
next reply other threads:[~2017-02-09 15:59 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-09 15:56 vijay.kilari [this message]
2017-02-09 15:56 ` [RFC PATCH v1 01/21] ARM: NUMA: Add existing ARM numa code under CONFIG_NUMA vijay.kilari
2017-02-20 11:39 ` Julien Grall
2017-02-22 9:18 ` Vijay Kilari
2017-02-22 10:49 ` Julien Grall
2017-02-09 15:56 ` [RFC PATCH v1 02/21] x86: NUMA: Refactor NUMA code vijay.kilari
2017-02-09 16:11 ` Jan Beulich
2017-02-20 11:41 ` Julien Grall
2017-02-27 11:43 ` Vijay Kilari
2017-02-27 14:58 ` Jan Beulich
2017-02-20 12:37 ` Julien Grall
2017-02-22 10:04 ` Vijay Kilari
2017-02-22 10:55 ` Julien Grall
2017-02-09 15:56 ` [RFC PATCH v1 03/21] NUMA: Move arch specific NUMA code as common vijay.kilari
2017-02-09 16:15 ` Jan Beulich
2017-02-20 12:47 ` Julien Grall
2017-02-22 10:08 ` Vijay Kilari
2017-02-22 11:07 ` Julien Grall
2017-02-09 15:56 ` [RFC PATCH v1 04/21] NUMA: Refactor generic and arch specific code of numa_setup vijay.kilari
2017-02-20 13:39 ` Julien Grall
2017-02-22 10:27 ` Vijay Kilari
2017-02-22 11:09 ` Julien Grall
2017-02-09 15:56 ` [RFC PATCH v1 05/21] ARM: efi: Do not delete memory node from fdt vijay.kilari
2017-02-20 13:42 ` Julien Grall
2017-02-09 15:56 ` [RFC PATCH v1 06/21] ARM: NUMA: Parse CPU NUMA information vijay.kilari
2017-02-20 17:32 ` Julien Grall
2017-02-22 10:46 ` Vijay Kilari
2017-02-22 11:10 ` Julien Grall
2017-02-20 17:36 ` Julien Grall
2017-02-09 15:56 ` [RFC PATCH v1 07/21] ARM: NUMA: Parse memory " vijay.kilari
2017-02-20 18:05 ` Julien Grall
2017-03-02 12:25 ` Vijay Kilari
2017-03-02 14:48 ` Julien Grall
2017-03-02 15:08 ` Vijay Kilari
2017-03-02 15:19 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 08/21] ARM: NUMA: Parse NUMA distance information vijay.kilari
2017-02-20 18:28 ` Julien Grall
2017-02-22 11:38 ` Vijay Kilari
2017-02-22 11:44 ` Julien Grall
2017-03-02 12:10 ` Vijay Kilari
2017-03-02 12:17 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 09/21] ARM: NUMA: Add CPU NUMA support vijay.kilari
2017-02-20 18:32 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 10/21] ARM: NUMA: Add memory " vijay.kilari
2017-03-02 16:05 ` Julien Grall
2017-03-02 16:23 ` Vijay Kilari
2017-02-09 15:57 ` [RFC PATCH v1 11/21] ARM: NUMA: Add fallback on NUMA failure vijay.kilari
2017-03-02 16:09 ` Julien Grall
2017-03-02 16:25 ` Vijay Kilari
2017-02-09 15:57 ` [RFC PATCH v1 12/21] ARM: NUMA: Do not expose numa info to DOM0 vijay.kilari
2017-02-20 18:36 ` Julien Grall
2017-03-02 12:30 ` Vijay Kilari
2017-02-09 15:57 ` [RFC PATCH v1 13/21] ACPI: Refactor acpi SRAT and SLIT table handling code vijay.kilari
2017-03-02 15:30 ` Julien Grall
2017-03-02 16:31 ` Vijay Kilari
2017-03-02 16:32 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 14/21] ACPI: Move srat_disabled to common code vijay.kilari
2017-02-09 15:57 ` [RFC PATCH v1 15/21] ARM: NUMA: Extract MPIDR from MADT table vijay.kilari
2017-03-02 16:28 ` Julien Grall
2017-03-02 16:41 ` Vijay Kilari
2017-03-02 16:49 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 16/21] ARM: NUMA: Extract proximity from SRAT table vijay.kilari
2017-03-02 17:21 ` Julien Grall
2017-03-03 12:39 ` Vijay Kilari
2017-03-03 13:44 ` Julien Grall
2017-03-03 13:50 ` Vijay Kilari
2017-03-03 13:52 ` Julien Grall
2017-03-03 14:45 ` Vijay Kilari
2017-03-03 14:52 ` Julien Grall
2017-03-03 15:16 ` Vijay Kilari
2017-03-03 15:22 ` Jan Beulich
2017-03-10 10:53 ` Vijay Kilari
2017-02-09 15:57 ` [RFC PATCH v1 17/21] ARM: NUMA: Extract memory " vijay.kilari
2017-02-10 17:33 ` Konrad Rzeszutek Wilk
2017-02-10 17:35 ` Konrad Rzeszutek Wilk
2017-03-02 14:41 ` Vijay Kilari
2017-02-09 15:57 ` [RFC PATCH v1 18/21] ARM: NUMA: update node_distance with ACPI support vijay.kilari
2017-03-02 17:24 ` Julien Grall
2017-03-03 12:43 ` Vijay Kilari
2017-03-03 13:46 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 19/21] ARM: NUMA: Initialize ACPI NUMA vijay.kilari
2017-03-02 17:25 ` Julien Grall
2017-03-03 12:44 ` Vijay Kilari
2017-02-09 15:57 ` [RFC PATCH v1 20/21] ARM: NUMA: Enable CONFIG_NUMA config vijay.kilari
2017-03-02 17:27 ` Julien Grall
2017-02-09 15:57 ` [RFC PATCH v1 21/21] ARM: NUMA: Enable CONFIG_ACPI_NUMA config vijay.kilari
2017-03-02 17:31 ` Julien Grall
2017-02-09 16:31 ` [RFC PATCH v1 00/21] ARM: Add Xen NUMA support Julien Grall
2017-02-09 16:59 ` Vijay Kilari
2017-02-10 17:30 ` Konrad Rzeszutek Wilk
2017-03-02 14:49 ` Vijay Kilari
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=1486655834-9708-1-git-send-email-vijay.kilari@gmail.com \
--to=vijay.kilari@gmail.com \
--cc=Vijaya.Kumar@cavium.com \
--cc=andre.przywara@arm.com \
--cc=dario.faggioli@citrix.com \
--cc=julien.grall@arm.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.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).