On Mon, Oct 12, 2020 at 07:44:14PM +0200, Philippe Mathieu-Daudé wrote: > On 10/7/20 7:28 PM, Daniel Henrique Barboza wrote: > > A new function called spapr_numa_define_associativity_domains() > > is created to calculate the associativity domains and change > > the associativity arrays considering user input. This is how > > the associativity domain between two NUMA nodes A and B is > > calculated: > > > > - get the distance D between them > > > > - get the correspondent NUMA level 'n_level' for D. This is done > > via a helper called spapr_numa_get_numa_level() > > > > - all associativity arrays were initialized with their own > > numa_ids, and we're calculating the distance in node_id ascending > > order, starting from node id 0 (the first node retrieved by > > numa_state). This will have a cascade effect in the algorithm because > > the associativity domains that node 0 defines will be carried over to > > other nodes, and node 1 associativities will be carried over after > > taking node 0 associativities into account, and so on. This > > happens because we'll assign assoc_src as the associativity domain > > of dst as well, for all NUMA levels beyond and including n_level. > > > > The PPC kernel expects the associativity domains of the first node > > (node id 0) to be always 0 [1], and this algorithm will grant that > > by default. > > > > Ultimately, all of this results in a best effort approximation for > > the actual NUMA distances the user input in the command line. Given > > the nature of how PAPR itself interprets NUMA distances versus the > > expectations risen by how ACPI SLIT works, there might be better > > algorithms but, in the end, it'll also result in another way to > > approximate what the user really wanted. > > > > To keep this commit message no longer than it already is, the next > > patch will update the existing documentation in ppc-spapr-numa.rst > > with more in depth details and design considerations/drawbacks. > > > > [1] https://lore.kernel.org/linuxppc-dev/5e8fbea3-8faf-0951-172a-b41a2138fbcf@gmail.com/ > > > > Signed-off-by: Daniel Henrique Barboza > > --- > > capstone | 2 +- > > hw/ppc/spapr_numa.c | 110 +++++++++++++++++++++++++++++++++++++++++++- > > 2 files changed, 110 insertions(+), 2 deletions(-) > > > > diff --git a/capstone b/capstone > > index f8b1b83301..22ead3e0bf 160000 > > --- a/capstone > > +++ b/capstone > > @@ -1 +1 @@ > > -Subproject commit f8b1b833015a4ae47110ed068e0deb7106ced66d > > +Subproject commit 22ead3e0bfdb87516656453336160e0a37b066bf > > Certainly unrelated to your patch. Yeah, found and fixed that one already. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson