• Rik van Riel's avatar
    sched/numa: Calculate node scores in complex NUMA topologies · 6c6b1193
    Rik van Riel authored
    In order to do task placement on systems with complex NUMA topologies,
    it is necessary to count the faults on nodes nearby the node that is
    being examined for a potential move.
    
    In case of a system with a backplane interconnect, we are dealing with
    groups of NUMA nodes; each of the nodes within a group is the same number
    of hops away from nodes in other groups in the system. Optimal placement
    on this topology is achieved by counting all nearby nodes equally. When
    comparing nodes A and B at distance N, nearby nodes are those at distances
    smaller than N from nodes A or B.
    
    Placement strategy on a system with a glueless mesh NUMA topology needs
    to be different, because there are no natural groups of nodes determined
    by the hardware. Instead, when dealing with two nodes A and B at distance
    N, N >= 2, there will be intermediate nodes at distance < N from both nodes
    A and B. Good placement can be achieved by right shifting the faults on
    nearby nodes by the number of hops from the node being scored. In this
    context, a nearby node is any node less than the maximum distance in the
    system away from the node. Those nodes are skipped for efficiency reasons,
    there is no real policy reason to do so.
    
    Placement policy on directly connected NUMA systems is not affected.
    Signed-off-by: default avatarRik van Riel <riel@redhat.com>
    Tested-by: default avatarChegu Vinod <chegu_vinod@hp.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: mgorman@suse.de
    Cc: chegu_vinod@hp.com
    Link: http://lkml.kernel.org/r/1413530994-9732-5-git-send-email-riel@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    6c6b1193
fair.c 209 KB