[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] spapr_numa.c: fix FORM1 distance-less nodes

From: Daniel Henrique Barboza
Subject: Re: [PATCH] spapr_numa.c: fix FORM1 distance-less nodes
Date: Wed, 10 Nov 2021 09:41:06 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0

On 11/10/21 06:58, Richard Henderson wrote:
On 11/9/21 7:35 PM, Daniel Henrique Barboza wrote:
Commit 71e6fae3a99 fixed an issue with FORM2 affinity guests with NUMA
nodes in which the distance info is absent in
machine_state->numa_state->nodes. This happens when QEMU adds a default
NUMA node and when the user adds NUMA nodes without specifying the

During the discussions of the forementioned patch [1] it was found that
FORM1 guests were behaving in a strange way in the same scenario, with
the kernel seeing the distances between the nodes as '160', as we can
see in this example with 4 NUMA nodes without distance information:

$ numactl -H
available: 4 nodes (0-3)
node distances:
node   0   1   2   3
   0:  10  160  160  160
   1:  160  10  160  160
   2:  160  160  10  160
   3:  160  160  160  10

Turns out that we have the same problem with FORM1 guests - we are
calculating associativity domain using zeroed values. And as it also
turns out, the solution from 71e6fae3a99 applies for FORM1 as well.

This patch creates a wrapper called 'get_numa_distance' that contains
the logic used in FORM2 to define node distances when this information
is absent. This helper is then used in all places where we need to read
distance information from machine_state->numa_state->nodes. That way
we'll guarantee that the NUMA node distance is always being curated
before being used.

After this patch, the FORM1 guest mentioned above will have the
following topology:

$ numactl -H
available: 4 nodes (0-3)
node distances:
node   0   1   2   3
   0:  10  20  20  20
   1:  20  10  20  20
   2:  20  20  10  20
   3:  20  20  20  10

This is compatible with what FORM2 guests and other archs do in this

[1] https://lists.gnu.org/archive/html/qemu-devel/2021-11/msg01960.html

CC: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
CC: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
  hw/ppc/spapr_numa.c | 62 ++++++++++++++++++++++-----------------------
  1 file changed, 31 insertions(+), 31 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


I forgot to add the "Fixes:" tag at the end of the commit msg though, so I
ended up sending a v2 adding it. Your r-b is kept in the v2.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]