• Jesse Barnes's avatar
    [PATCH] sched: limit cpuspan of node scheduler domains · c183e253
    Jesse Barnes authored
      This patch limits the cpu span of each node's scheduler domain to prevent
      balancing across too many cpus.  The cpus included in a node's domain are
      determined by the SD_NODES_PER_DOMAIN define and the arch specific
      sched_domain_node_span routine if ARCH_HAS_SCHED_DOMAIN is defined.  If
      ARCH_HAS_SCHED_DOMAIN is not defined, behavior is unchanged--all possible
      cpus will be included in each node's scheduling domain.  Currently, only
      ia64 provides an arch specific sched_domain_node_span routine.
    
    From: Jesse Barnes <jbarnes@engr.sgi.com>
    
      This patch adds some more NUMA specific logic to the creation of scheduler
      domains.  Domains spanning all CPUs in a large system are too large to
      schedule across efficiently, leading to livelocks and inordinate amounts of
      time being spent in scheduler routines.  With this patch applied, the node
      scheduling domains for NUMA platforms will only contain a specified number
      of nearby CPUs, based on the value of SD_NODES_PER_DOMAIN.  It also allows
      arches to override SD_NODE_INIT, which sets the domain scheduling parameters
      for each node's domain.  This is necessary especially for large systems.
    
      Possible future directions:
    
      o multilevel node hierarchy (e.g.  node domains could contain 4 nodes
        worth of CPUs, supernode domains could contain 32 nodes worth, etc.  each
        with their own SD_NODE_INIT values)
    
      o more tweaking of SD_NODE_INIT values for good load balancing vs. 
        overhead tradeoffs
    
    From: mita akinobu <amgta@yacht.ocn.ne.jp>
    
      Compile fix
    Signed-off-by: default avatarJesse Barnes <jbarnes@sgi.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    c183e253
sched.c 100 KB