summaryrefslogtreecommitdiff
path: root/kernel/sched/fair.c
diff options
context:
space:
mode:
authorPavankumar Kondeti <pkondeti@codeaurora.org>2017-10-16 14:09:29 +0530
committerMichael Bestas <mkbestas@lineageos.org>2019-12-23 23:43:40 +0200
commit5c43a2afb87ea44e4d52585989a76b1e6a2e6ce6 (patch)
tree21e47dbfdfdc56c4aac8f476c77e8f3532f733a7 /kernel/sched/fair.c
parent3d6ed948d991660254494856baabbf03e1915751 (diff)
core_ctl: Consider high irq loaded CPU as busy
Currently a CPU is considered as busy if it's utilization in the last window exceeds busy threshold. A CPU loaded with hardirqs/softirqs does not necessarily have high utilization. Isolating such CPUs may hurt performance as it involves waking up the CPU frequently from deep c-state. Prevent isolating high irq loaded CPUs by considering them as busy. Change-Id: I169b69f6003eb59a126c8a16b67b65be2aa7af40 Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Diffstat (limited to 'kernel/sched/fair.c')
-rw-r--r--kernel/sched/fair.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 18ce8cb02272..ffc2c71d0374 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -3001,6 +3001,8 @@ struct cpu_select_env *env, struct cluster_cpu_stats *stats)
int i;
struct cpumask search_cpus;
+ extern int num_clusters;
+
while (!bitmap_empty(env->backup_list, num_clusters)) {
next = next_candidate(env->backup_list, 0, num_clusters);
__clear_bit(next->id, env->backup_list);
@@ -3024,6 +3026,8 @@ next_best_cluster(struct sched_cluster *cluster, struct cpu_select_env *env,
{
struct sched_cluster *next = NULL;
+ extern int num_clusters;
+
__clear_bit(cluster->id, env->candidate_list);
if (env->rtg && preferred_cluster(cluster, env->p))