If a CPU that doesn't participate to the packing effort, has at least one running task, it means that its group is imbalanced and the CPUs can pull this task.
Signed-off-by: Vincent Guittot vincent.guittot@linaro.org --- kernel/sched/fair.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 54c1541..f87aed2 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4729,6 +4729,9 @@ static inline void update_sg_lb_stats(struct lb_env *env, max_nr_running = nr_running; if (min_nr_running > nr_running) min_nr_running = nr_running; + + if (!is_my_buddy(i, i) && nr_running > 0) + sgs->group_imb = 1; }
sgs->group_load += load;