• Nikunj A Dadhania's avatar
    powerpc/numa: initialize distance lookup table from drconf path · 1d805440
    Nikunj A Dadhania authored
    In some situations, a NUMA guest that supports
    ibm,dynamic-memory-reconfiguration node will end up having flat NUMA
    distances between nodes. This is because of two problems in the
    current code.
    
    1) Different representations of associativity lists.
    
       There is an assumption about the associativity list in
       initialize_distance_lookup_table(). Associativity list has two forms:
    
       a) [cpu,memory]@x/ibm,associativity has following
          format:
               <N> <N integers>
    
       b) ibm,dynamic-reconfiguration-memory/ibm,associativity-lookup-arrays
    
               <M> <N> <M associativity lists each having N integers>
               M = the number of associativity lists
               N = the number of entries per associativity list
    
       Fix initialize_distance_lookup_table() so that it does not assume
       "case a". And update the caller to skip the length field before
       sending the associativity list.
    
    2) Distance table not getting updated from drconf path.
    
       Node distance table will not get initialized in certain cases as
       ibm,dynamic-reconfiguration-memory path does not initialize the
       lookup table.
    
       Call initialize_distance_lookup_table() from drconf path with
       appropriate associativity list.
    Reported-by: default avatarBharata B Rao <bharata@linux.vnet.ibm.com>
    Signed-off-by: default avatarNikunj A Dadhania <nikunj@linux.vnet.ibm.com>
    Acked-by: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    1d805440
numa.c 39.2 KB