• Vincent Guittot's avatar
    sched/fair: Use rq->nr_running when balancing load · 5e23e474
    Vincent Guittot authored
    CFS load_balance() only takes care of CFS tasks whereas CPUs can be used by
    other scheduling classes. Typically, a CFS task preempted by an RT or deadline
    task will not get a chance to be pulled by another CPU because
    load_balance() doesn't take into account tasks from other classes.
    Add sum of nr_running in the statistics and use it to detect such
    situations.
    Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
    Cc: Ben Segall <bsegall@google.com>
    Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
    Cc: Juri Lelli <juri.lelli@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Morten.Rasmussen@arm.com
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: hdanton@sina.com
    Cc: parth@linux.ibm.com
    Cc: pauld@redhat.com
    Cc: quentin.perret@arm.com
    Cc: riel@surriel.com
    Cc: srikar@linux.vnet.ibm.com
    Cc: valentin.schneider@arm.com
    Link: https://lkml.kernel.org/r/1571405198-27570-6-git-send-email-vincent.guittot@linaro.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    5e23e474
fair.c 280 KB