• Srikar Dronamraju's avatar
    powerpc/numa: Use associativity if VPHN hcall is successful · 2483ef05
    Srikar Dronamraju authored
    Currently associativity is used to lookup node-id even if the
    preceding VPHN hcall failed. However this can cause CPU to be made
    part of the wrong node, (most likely to be node 0). This is because
    VPHN is not enabled on KVM guests.
    
    With 2ea62630 ("powerpc/topology: Get topology for shared processors at
    boot"), associativity is used to set to the wrong node. Hence KVM
    guest topology is broken.
    
    For example : A 4 node KVM guest before would have reported.
    
      [root@localhost ~]#  numactl -H
      available: 4 nodes (0-3)
      node 0 cpus: 0 1 2 3
      node 0 size: 1746 MB
      node 0 free: 1604 MB
      node 1 cpus: 4 5 6 7
      node 1 size: 2044 MB
      node 1 free: 1765 MB
      node 2 cpus: 8 9 10 11
      node 2 size: 2044 MB
      node 2 free: 1837 MB
      node 3 cpus: 12 13 14 15
      node 3 size: 2044 MB
      node 3 free: 1903 MB
      node distances:
      node   0   1   2   3
        0:  10  40  40  40
        1:  40  10  40  40
        2:  40  40  10  40
        3:  40  40  40  10
    
    Would now report:
    
      [root@localhost ~]# numactl -H
      available: 4 nodes (0-3)
      node 0 cpus: 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15
      node 0 size: 1746 MB
      node 0 free: 1244 MB
      node 1 cpus:
      node 1 size: 2044 MB
      node 1 free: 2032 MB
      node 2 cpus: 1
      node 2 size: 2044 MB
      node 2 free: 2028 MB
      node 3 cpus:
      node 3 size: 2044 MB
      node 3 free: 2032 MB
      node distances:
      node   0   1   2   3
        0:  10  40  40  40
        1:  40  10  40  40
        2:  40  40  10  40
        3:  40  40  40  10
    
    Fix this by skipping associativity lookup if the VPHN hcall failed.
    
    Fixes: 2ea62630 ("powerpc/topology: Get topology for shared processors at boot")
    Signed-off-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    2483ef05
numa.c 37.7 KB