• Dinakar Guniguntala's avatar
    [PATCH] Dynamic sched domains: sched changes · 1a20ff27
    Dinakar Guniguntala authored
    The following patches add dynamic sched domains functionality that was
    extensively discussed on lkml and lse-tech.  I would like to see this added to
    -mm
    
    o The main advantage with this feature is that it ensures that the scheduler
      load balacing code only balances against the cpus that are in the sched
      domain as defined by an exclusive cpuset and not all of the cpus in the
      system. This removes any overhead due to load balancing code trying to
      pull tasks outside of the cpu exclusive cpuset only to be prevented by
      the tasks' cpus_allowed mask.
    o cpu exclusive cpusets are useful for servers running orthogonal
      workloads such as RT applications requiring low latency and HPC
      applications that are throughput sensitive
    
    o It provides a new API partition_sched_domains in sched.c
      that makes dynamic sched domains possible.
    o cpu_exclusive cpusets sets are now associated with a sched domain.
      Which means that the users can dynamically modify the sched domains
      through the cpuset file system interface
    o ia64 sched domain code has been updated to support this feature as well
    o Currently, this does not support hotplug. (However some of my tests
      indicate hotplug+preempt is currently broken)
    o I have tested it extensively on x86.
    o This should have very minimal impact on performance as none of
      the fast paths are affected
    Signed-off-by: default avatarDinakar Guniguntala <dino@in.ibm.com>
    Acked-by: default avatarPaul Jackson <pj@sgi.com>
    Acked-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
    Acked-by: default avatarMatthew Dobson <colpatch@us.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    1a20ff27
sched.c 130 KB