summaryrefslogtreecommitdiff
path: root/kernel/sched/rt.c
diff options
context:
space:
mode:
authorSyed Rameez Mustafa <rameezmustafa@codeaurora.org>2014-12-03 10:18:12 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:01:05 -0700
commit57ee8ef06eb2ac56c9c227e687e9df8d02bd691e (patch)
treea498be874ac73a63d4dccef81b177cbee608c4db /kernel/sched/rt.c
parentdc66ef50f5572f811e068a78ef99c92782fbfc0d (diff)
sched: Make RT tasks eligible for boost
During sched boost RT tasks currently end up going to the lowest power cluster. This can be a performance bottleneck especially if the frequency and IPC differences between clusters are high. Furthermore, when RT tasks go over to the little cluster during boost, the load balancer keeps attempting to pull work over to the big cluster. This results in pre-emption of the executing RT task causing more delays. Finally, containing more work on a single cluster during boost might help save some power if the little cluster can then enter deeper low power modes. Change-Id: I177b2e81be5657c23e7ac43889472561ce9993a9 Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Diffstat (limited to 'kernel/sched/rt.c')
-rw-r--r--kernel/sched/rt.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 280b9a8da5f8..f2f9b92f75cb 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -1659,6 +1659,10 @@ static int find_lowest_rq_hmp(struct task_struct *task)
cpu_cost = power_cost_at_freq(i, ACCESS_ONCE(rq->min_freq));
trace_sched_cpu_load(rq, idle_cpu(i),
mostly_idle_cpu(i), cpu_cost);
+
+ if (sched_boost() && capacity(rq) != max_capacity)
+ continue;
+
if (cpu_cost < min_cost) {
min_cost = cpu_cost;
best_cpu = i;