diff options
| author | Syed Rameez Mustafa <rameezmustafa@codeaurora.org> | 2014-10-01 19:09:38 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:00:47 -0700 |
| commit | 53eb9ad023f82e121e4fe79ffc68f02e5511e233 (patch) | |
| tree | 7a640cc418cc463f786b6ebb6ace4c1d00da90e6 | |
| parent | d44a8bea4ef2f569404600d6b5392bc000096a2e (diff) | |
sched: Stop task migration to busy CPUs due to power active balance
Power active balance should only be invoked when the destination CPU
is calling load balance with either a CPU_IDLE or a CPU_NEWLY_IDLE
environment. We do not want to push tasks towards busy CPUs even they
are a more power efficient place to run that task. This can cause
higher scheduling latencies due to the resulting load imbalance.
Change-Id: I8e0f242338887d189e2fc17acfb63586e7c40839
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
| -rw-r--r-- | kernel/sched/fair.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 86683790fa81..6dc05ff2c6be 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7497,6 +7497,7 @@ group_type group_classify(struct sched_group *group, * seen a busy group yet. We want to prioritize spreading * work over power optimization. */ if (group->group_weight == 1 && sgs->sum_nr_running && + (env->idle != CPU_NOT_IDLE) && power_cost_at_freq(env->dst_cpu, 0) < power_cost_at_freq(cpumask_first(sched_group_cpus(group)), 0)) { env->flags |= LBF_PWR_ACTIVE_BALANCE; |
