Hi, In this version the biggest change is the end of the numa_assoc_array struct in the machine state. The write_dt() functions are now retrieving the current NUMA associativity array by checking CAS first.
This change allowed for several simplifications, e.g. we don't need a reset() function to be called after CAS or in spapr_post_load(). Arrays are now statically allocated. I also catched a last minute bug during my tests. See patch 7 for more info. Changes from v6: - patch 1: * added Greg's r-b - patch 2: * added the missing NUMA nodes number check * added Greg's r-b - patch 3 (former patch 4): * no changes. - former patch 3 (associativity_reset()): dropped - patch 4 (new): * added get_associativity() * do not allocate FORM1_assoc_array in the heap - patch 5: * fixed typo * added new check function to be called in CAS - patch 6: * do not allocate FORM2_assoc_array in the heap - patch 7 (new): * FORM2 fixes to handle the implicit added QEMU NUMA node when there's no NUMA node added by the user. - v6 link: https://lists.gnu.org/archive/html/qemu-devel/2021-09/msg02892.html Daniel Henrique Barboza (7): spapr_numa.c: split FORM1 code into helpers spapr_numa.c: scrap 'legacy_numa' concept spapr_numa.c: parametrize FORM1 macros spapr_numa.c: rename numa_assoc_array to FORM1_assoc_array spapr: move FORM1 verifications to post CAS spapr_numa.c: FORM2 NUMA affinity support spapr_numa.c: handle auto NUMA node with no distance info hw/ppc/spapr.c | 41 +--- hw/ppc/spapr_hcall.c | 7 + hw/ppc/spapr_numa.c | 380 ++++++++++++++++++++++++++++++------ include/hw/ppc/spapr.h | 35 ++-- include/hw/ppc/spapr_numa.h | 1 + include/hw/ppc/spapr_ovec.h | 1 + 6 files changed, 354 insertions(+), 111 deletions(-) -- 2.31.1