[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 3/8] spapr_numa.c: wait for CAS before writing rtas DT
From: |
Daniel Henrique Barboza |
Subject: |
[RFC PATCH 3/8] spapr_numa.c: wait for CAS before writing rtas DT |
Date: |
Mon, 14 Jun 2021 22:33:04 -0300 |
spapr_numa_write_rtas_dt() is called from spapr_dt_rtas(), which in
turned is called by spapr_build_fdt(). spapr_build_fdt() is called in
two places: spapr_machine_reset() and do_client_architecture_support().
When called in machine_reset() we're writing RTAS nodes with NUMA
artifacts without going through CAS first.
This is not an issue because we always write the same thing in DT, since
we support just FORM1 NUMA affinity. With the upcoming FORM2 support,
we're now reliant on guest choice to decide what to write.
Instead of taking a guess (e.g. default to FORM1, switch to FORM2 if
guest chooses it), postpone the writing of
ibm,associativity-reference-points and ibm,max-associativity-domains
until we're sure what was negotiated with the guest.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/spapr_numa.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/ppc/spapr_numa.c b/hw/ppc/spapr_numa.c
index 04a86f9b5b..e1a7f80076 100644
--- a/hw/ppc/spapr_numa.c
+++ b/hw/ppc/spapr_numa.c
@@ -379,6 +379,10 @@ static void
spapr_numa_FORM1_write_rtas_dt(SpaprMachineState *spapr,
*/
void spapr_numa_write_rtas_dt(SpaprMachineState *spapr, void *fdt, int rtas)
{
+ if (spapr_ovec_empty(spapr->ov5_cas)) {
+ return;
+ }
+
spapr_numa_FORM1_write_rtas_dt(spapr, fdt, rtas);
}
--
2.31.1
- [RFC PATCH 0/8] pSeries base FORM2 NUMA affinity support, Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 1/8] spapr: move NUMA data init to do_client_architecture_support(), Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 2/8] spapr_numa.c: split FORM1 code into helpers, Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 3/8] spapr_numa.c: wait for CAS before writing rtas DT,
Daniel Henrique Barboza <=
- [RFC PATCH 4/8] spapr_numa.c: base FORM2 NUMA affinity support, Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 5/8] spapr: simplify spapr_numa_associativity_init params, Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 6/8] nvdimm: add PPC64 'device-node' property, Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 7/8] spapr_numa, spapar_nvdimm: write secondary NUMA domain for nvdimms, Daniel Henrique Barboza, 2021/06/14
- [RFC PATCH 8/8] spapr: move memory/cpu less check to spapr_numa_FORM1_affinity_init(), Daniel Henrique Barboza, 2021/06/14