• Rik van Riel's avatar
    sched/numa: Classify the NUMA topology of a system · e3fe70b1
    Rik van Riel authored
    Smaller NUMA systems tend to have all NUMA nodes directly connected
    to each other. This includes the degenerate case of a system with just
    one node, ie. a non-NUMA system.
    
    Larger systems can have two kinds of NUMA topology, which affects how
    tasks and memory should be placed on the system.
    
    On glueless mesh systems, nodes that are not directly connected to
    each other will bounce traffic through intermediary nodes. Task groups
    can be run closer to each other by moving tasks from a node to an
    intermediary node between it and the task's preferred node.
    
    On NUMA systems with backplane controllers, the intermediary hops
    are incapable of running programs. This creates "islands" of nodes
    that are at an equal distance to anywhere else in the system.
    
    Each kind of topology requires a slightly different placement
    algorithm; this patch provides the mechanism to detect the kind
    of NUMA topology of a system.
    Signed-off-by: default avatarRik van Riel <riel@redhat.com>
    Tested-by: default avatarChegu Vinod <chegu_vinod@hp.com>
    [ Changed to use kernel/sched/sched.h ]
    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-3-git-send-email-riel@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    e3fe70b1
sched.h 40.5 KB