• Vincent Guittot's avatar
    sched/fair: Fix nohz.next_balance update · c5afb6a8
    Vincent Guittot authored
    Since commit:
    
      d4573c3e ("sched: Improve load balancing in the presence of idle CPUs")
    
    the ILB CPU starts with the idle load balancing of other idle CPUs and
    finishes with itself in order to speed up the spread of tasks in all
    idle CPUs.
    
    The this_rq->next_balance is still used in nohz_idle_balance() as an
    intermediate step to gather the shortest next balance before updating
    nohz.next_balance. But the former has not been updated yet and is likely to
    be set with the current jiffies. As a result, the nohz.next_balance will be
    set with current jiffies instead of the real next balance date. This
    generates spurious kicks of nohz ilde balance.
    
    nohz_idle_balance() must set the nohz.next_balance without taking into
    account this_rq->next_balance which is not updated yet. Then, this_rq will
    update nohz.next_update with its next_balance once updated and if necessary.
    Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: default avatarJason Low <jason.low2@hp.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: preeti@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/r/1438595750-20455-1-git-send-email-vincent.guittot@linaro.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    c5afb6a8
fair.c 217 KB