summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyed Rameez Mustafa <rameezmustafa@codeaurora.org>2014-10-01 19:09:38 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:00:47 -0700
commit53eb9ad023f82e121e4fe79ffc68f02e5511e233 (patch)
tree7a640cc418cc463f786b6ebb6ace4c1d00da90e6
parentd44a8bea4ef2f569404600d6b5392bc000096a2e (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.c1
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;