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>
This commit is contained in:
parent
be832f69a9
commit
7ab48e4c8d
1 changed files with 1 additions and 0 deletions
|
@ -8863,6 +8863,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)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue