Skip to content

Commit 2067342

Browse files
Joonwoo Parkpundiramit
authored andcommitted
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: Joonwoo Park <joonwoop@codeaurora.org> [markivx: Reworked the commit text a bit] Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
1 parent 1765eac commit 2067342

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

kernel/sched/fair.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8863,6 +8863,7 @@ static int need_active_balance(struct lb_env *env)
88638863
}
88648864

88658865
if ((capacity_of(env->src_cpu) < capacity_of(env->dst_cpu)) &&
8866+
((capacity_orig_of(env->src_cpu) < capacity_orig_of(env->dst_cpu))) &&
88668867
env->src_rq->cfs.h_nr_running == 1 &&
88678868
cpu_overutilized(env->src_cpu) &&
88688869
!cpu_overutilized(env->dst_cpu)) {

0 commit comments

Comments
 (0)