From c7afff3259fdcd66ba9ae477e205617774fb8dc9 Mon Sep 17 00:00:00 2001 From: Pavankumar Kondeti Date: Fri, 12 Feb 2021 14:24:03 +0530 Subject: [PATCH] sched/walt: Don't migrate running task to a busy CPU Active migration of running tasks is allowed only onto idle CPUs. Add a check for it in walt_lb_find_busiest_lower_cap_cpu(). Change-Id: I195aadc8b5822d4f231edd2f57d9df5ef1a6e350 Signed-off-by: Pavankumar Kondeti --- kernel/sched/walt/walt_lb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/walt/walt_lb.c b/kernel/sched/walt/walt_lb.c index a04f98ac50a1..0e60824e0381 100644 --- a/kernel/sched/walt/walt_lb.c +++ b/kernel/sched/walt/walt_lb.c @@ -439,7 +439,9 @@ static int walt_lb_find_busiest_lower_cap_cpu(int dst_cpu, const cpumask_t *src_ if (cpu_rq(i)->active_balance) continue; - if (cpu_rq(i)->cfs.h_nr_running < 2 && !wrq->walt_stats.nr_big_tasks) + /* active migration is allowed only to idle cpu */ + if (cpu_rq(i)->cfs.h_nr_running < 2 && + (!wrq->walt_stats.nr_big_tasks || !available_idle_cpu(dst_cpu))) continue; if (!walt_rotation_enabled && !cpu_overutilized(i))