• Siddha, Suresh B's avatar
    sched: dynticks idle load balancing · 46cb4b7c
    Siddha, Suresh B authored
    Fix the process idle load balancing in the presence of dynticks.  cpus for
    which ticks are stopped will sleep till the next event wakes it up.
    Potentially these sleeps can be for large durations and during which today,
    there is no periodic idle load balancing being done.
    
    This patch nominates an owner among the idle cpus, which does the idle load
    balancing on behalf of the other idle cpus.  And once all the cpus are
    completely idle, then we can stop this idle load balancing too.  Checks added
    in fast path are minimized.  Whenever there are busy cpus in the system, there
    will be an owner(idle cpu) doing the system wide idle load balancing.
    
    Open items:
    1. Intelligent owner selection (like an idle core in a busy package).
    2. Merge with rcu's nohz_cpu_mask?
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Acked-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Nick Piggin <nickpiggin@yahoo.com.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    46cb4b7c
sched.c 178 KB