This third version is based on review comments and suggestion from David. changes from v2: - patch 3 from v2: removed - patch 2: * added David's R-b - patch 3 (former 4 in v2): * added Greg and David R-bs * added G_STATIC_ASSERT() before memcpy() - patch 4 (former 5 in v2): * clarified what 'node 0' means in the commit msg * rewrote a bit to clarify what the logic does * the translation of user distance to PAPR distance logic, previously presented in the former patch 3 in v2, was folded into spapr_numa_get_numa_level() * removed needless 'if' when assigning associativities in spapr_numa_define_associativity_domains() - patch 5 (former 6 in v2): * moved the section describing the current logic up * created a new 'legacy' section describing the pre-5.2 behavior * added a 'known limitations' section documentating that we don't support asymmetrical topologies and we do a poor job approximating 'non-transitive' topologies
v2 link: https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg09073.html Daniel Henrique Barboza (5): spapr: add spapr_machine_using_legacy_numa() helper spapr_numa: forbid asymmetrical NUMA setups spapr_numa: change reference-points and maxdomain settings spapr_numa: consider user input when defining associativity specs/ppc-spapr-numa: update with new NUMA support docs/specs/ppc-spapr-numa.rst | 206 +++++++++++++++++++++++++++++++++- hw/ppc/spapr.c | 12 ++ hw/ppc/spapr_numa.c | 195 ++++++++++++++++++++++++++++++-- include/hw/ppc/spapr.h | 2 + 4 files changed, 406 insertions(+), 9 deletions(-) -- 2.26.2