From: Daniel Henrique Barboza <danielhb413@gmail.com>
To: qemu-devel@nongnu.org
Cc: Daniel Henrique Barboza <danielhb413@gmail.com>,
qemu-ppc@nongnu.org, david@gibson.dropbear.id.au
Subject: [PATCH 06/10] spapr: allow 4 NUMA levels in ibm, associativity-reference-points
Date: Fri, 14 Aug 2020 17:54:20 -0300 [thread overview]
Message-ID: <20200814205424.543857-7-danielhb413@gmail.com> (raw)
In-Reply-To: <20200814205424.543857-1-danielhb413@gmail.com>
The value of ibm,associativity-reference-points is in sync with
what Skiboot does. It's a three level NUMA configuration where
the first two levels references the same associativity index
(0x4), meaning that the next distance after the local_distance
(10) is two orders away (a '40' value in the Linux kernel). The
third level (0x2) was added to allow NVLink GPUs to be placed
outside of the same associativity domain of the regular
NUMA nodes. However, we have to deal with the possibility of
user customization of the NUMA distances, something that
Skiboot doesn't need to, and this current scheme is too
tight.
The next step to give users more flexibility is to define 4
distinct NUMA levels, allowing for 5 discrete values of
distances (10, 20, 40, 80 and 160 as seen by the kernel).
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/spapr.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index b0c4b80a23..bc51d2db90 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -906,8 +906,9 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt)
GString *qemu_hypertas = g_string_sized_new(256);
uint32_t refpoints[] = {
cpu_to_be32(0x4),
- cpu_to_be32(0x4),
+ cpu_to_be32(0x3),
cpu_to_be32(0x2),
+ cpu_to_be32(0x1),
};
uint32_t nr_refpoints = ARRAY_SIZE(refpoints);
uint64_t max_device_addr = MACHINE(spapr)->device_memory->base +
@@ -970,6 +971,10 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt)
g_string_free(qemu_hypertas, TRUE);
if (spapr_machine_using_legacy_numa(spapr)) {
+ refpoints[1] = cpu_to_be32(0x4);
+ refpoints[2] = cpu_to_be32(0x2);
+ nr_refpoints = 3;
+
maxdomain = cpu_to_be32(spapr->extra_numa_nodes > 1 ? 1 : 0);
maxdomains[1] = maxdomain;
maxdomains[2] = maxdomain;
--
2.26.2
next prev parent reply other threads:[~2020-08-15 16:06 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-14 20:54 [PATCH 00/10] pseries NUMA distance rework Daniel Henrique Barboza
2020-08-14 20:54 ` [PATCH 01/10] hw: add compat machines for 5.2 Daniel Henrique Barboza
2020-08-14 20:54 ` [PATCH 02/10] numa: introduce MachineClass::forbid_asymmetrical_numa Daniel Henrique Barboza
2020-08-20 1:17 ` David Gibson
2020-08-20 2:11 ` Eduardo Habkost
2020-08-20 4:15 ` David Gibson
2020-08-20 10:33 ` Daniel Henrique Barboza
2020-08-20 14:29 ` Igor Mammedov
2020-08-20 16:51 ` Eduardo Habkost
2020-08-21 8:55 ` Igor Mammedov
2020-08-21 12:47 ` Daniel Henrique Barboza
2020-08-24 6:08 ` David Gibson
2020-08-24 11:45 ` Daniel Henrique Barboza
2020-08-24 23:49 ` David Gibson
2020-08-25 9:56 ` Daniel Henrique Barboza
2020-08-25 11:12 ` David Gibson
2020-09-23 15:21 ` John Snow
2020-08-14 20:54 ` [PATCH 03/10] spapr: robustify NVLink2 NUMA node logic Daniel Henrique Barboza
2020-08-20 2:14 ` David Gibson
2020-08-26 21:49 ` Daniel Henrique Barboza
2020-08-14 20:54 ` [PATCH 04/10] spapr: add spapr_machine_using_legacy_numa() helper Daniel Henrique Barboza
2020-08-20 2:15 ` David Gibson
2020-08-14 20:54 ` [PATCH 05/10] spapr: make ibm, max-associativity-domains scale with user input Daniel Henrique Barboza
2020-08-20 2:55 ` [PATCH 05/10] spapr: make ibm,max-associativity-domains " David Gibson
2020-08-26 21:17 ` Daniel Henrique Barboza
2020-08-14 20:54 ` Daniel Henrique Barboza [this message]
2020-08-14 20:54 ` [PATCH 07/10] spapr: create helper to set ibm,associativity Daniel Henrique Barboza
2020-08-20 3:00 ` David Gibson
2020-08-20 10:39 ` Daniel Henrique Barboza
2020-08-14 20:54 ` [PATCH 08/10] spapr: introduce SpaprMachineClass::numa_assoc_domains Daniel Henrique Barboza
2020-08-20 4:26 ` David Gibson
2020-08-26 20:06 ` Daniel Henrique Barboza
2020-08-14 20:54 ` [PATCH 09/10] spapr: consider user input when defining spapr guest NUMA Daniel Henrique Barboza
2020-08-14 20:54 ` [PATCH 10/10] specs/ppc-spapr-numa: update with new NUMA support Daniel Henrique Barboza
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=20200814205424.543857-7-danielhb413@gmail.com \
--to=danielhb413@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.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).