diff options
author | Syed Rameez Mustafa <rameezmustafa@codeaurora.org> | 2014-12-03 10:18:12 -0800 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:01:05 -0700 |
commit | 57ee8ef06eb2ac56c9c227e687e9df8d02bd691e (patch) | |
tree | a498be874ac73a63d4dccef81b177cbee608c4db /kernel/sched/rt.c | |
parent | dc66ef50f5572f811e068a78ef99c92782fbfc0d (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.c | 4 |
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; |