26ba25
From 7dbee79b31930ae0eab366f807ea2b6ff506fc1a Mon Sep 17 00:00:00 2001
26ba25
From: Serhii Popovych <spopovyc@redhat.com>
26ba25
Date: Wed, 11 Jul 2018 17:11:44 +0100
26ba25
Subject: [PATCH 1/4] spapr: Add ibm, max-associativity-domains property
26ba25
26ba25
RH-Author: Serhii Popovych <spopovyc@redhat.com>
26ba25
Message-id: <1531329105-80927-2-git-send-email-spopovyc@redhat.com>
26ba25
Patchwork-id: 81311
26ba25
O-Subject: [RHEL-8.0 qemu-kvm PATCH 1/2] spapr: Add ibm, max-associativity-domains property
26ba25
Bugzilla: 1599593
26ba25
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
26ba25
RH-Acked-by: David Gibson <dgibson@redhat.com>
26ba25
RH-Acked-by: Thomas Huth <thuth@redhat.com>
26ba25
26ba25
Now recent kernels (i.e. since linux-stable commit a346137e9142
26ba25
("powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes")
26ba25
support this property to mark initially memory-less NUMA nodes as "possible"
26ba25
to allow further memory hot-add to them.
26ba25
26ba25
Advertise this property for pSeries machines to let guest kernels detect
26ba25
maximum supported node configuration and benefit from kernel side change
26ba25
when hot-add memory to specific, possibly empty before, NUMA node.
26ba25
26ba25
Signed-off-by: Serhii Popovych <spopovyc@redhat.com>
26ba25
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
26ba25
(cherry picked from commit da9f80fbad21319194e73355dea8a1cff6a574e4)
26ba25
Signed-off-by: Serhii Popovych <spopovyc@redhat.com>
26ba25
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
26ba25
---
26ba25
 hw/ppc/spapr.c | 10 ++++++++++
26ba25
 1 file changed, 10 insertions(+)
26ba25
26ba25
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
26ba25
index c3f08b3..f3da93f 100644
26ba25
--- a/hw/ppc/spapr.c
26ba25
+++ b/hw/ppc/spapr.c
26ba25
@@ -910,6 +910,13 @@ static void spapr_dt_rtas(sPAPRMachineState *spapr, void *fdt)
26ba25
         0, cpu_to_be32(SPAPR_MEMORY_BLOCK_SIZE),
26ba25
         cpu_to_be32(max_cpus / smp_threads),
26ba25
     };
26ba25
+    uint32_t maxdomains[] = {
26ba25
+        cpu_to_be32(4),
26ba25
+        cpu_to_be32(0),
26ba25
+        cpu_to_be32(0),
26ba25
+        cpu_to_be32(0),
26ba25
+        cpu_to_be32(nb_numa_nodes ? nb_numa_nodes - 1 : 0),
26ba25
+    };
26ba25
 
26ba25
     _FDT(rtas = fdt_add_subnode(fdt, 0, "rtas"));
26ba25
 
26ba25
@@ -946,6 +953,9 @@ static void spapr_dt_rtas(sPAPRMachineState *spapr, void *fdt)
26ba25
     _FDT(fdt_setprop(fdt, rtas, "ibm,associativity-reference-points",
26ba25
                      refpoints, sizeof(refpoints)));
26ba25
 
26ba25
+    _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains",
26ba25
+                     maxdomains, sizeof(maxdomains)));
26ba25
+
26ba25
     _FDT(fdt_setprop_cell(fdt, rtas, "rtas-error-log-max",
26ba25
                           RTAS_ERROR_LOG_MAX));
26ba25
     _FDT(fdt_setprop_cell(fdt, rtas, "rtas-event-scan-rate",
26ba25
-- 
26ba25
1.8.3.1
26ba25