Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c677797a authored by Joonwoo Park's avatar Joonwoo Park Committed by Chris Redpath
Browse files

ANDROID: sched/fair: prevent meaningless active migration



At present need_active_balance() determines whether an active
upmigration is needed by using capacity_of(). A CPU's capacity
may be reduced by RT pressure, and therefore distinguishing
capability differences with capacity_of() may lead to suboptimal
active migrations to less capable CPUs. Use capacity_orig_of
to distinguish differently capable CPUs in addition to
capacity_of(), thus avoiding placing tasks on less capable CPUs
due to instantaneous RT pressure.

Change-Id: I3e1435246a8edc3ad618ef98a34866cfbd8c16a5
Signed-off-by: default avatarJoonwoo Park <joonwoop@codeaurora.org>
[markivx: Reworked the commit text a bit]
Signed-off-by: default avatarVikram Mulukutla <markivx@codeaurora.org>
(cherry picked from commit 7ab48e4c8d9e0652bd978f3df26c29e64b5ea85a)
Signed-off-by: default avatarQuentin Perret <quentin.perret@arm.com>
Signed-off-by: default avatarChris Redpath <chris.redpath@arm.com>
parent 5cb866ac
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9557,6 +9557,7 @@ static int need_active_balance(struct lb_env *env)
	}

	if ((capacity_of(env->src_cpu) < capacity_of(env->dst_cpu)) &&
	    ((capacity_orig_of(env->src_cpu) < capacity_orig_of(env->dst_cpu))) &&
				env->src_rq->cfs.h_nr_running == 1 &&
				cpu_overutilized(env->src_cpu) &&
				!cpu_overutilized(env->dst_cpu)) {