summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikhil Rao <ncrao@google.com>2011-02-10 10:23:25 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-17 15:37:22 -0800
commit215856a4160cb959194e0605a9fcd6d1e71d2748 (patch)
tree9cf1071d0af2b3f49e4f653c526bab0e6ea61cea
parentacb2c6dc074dabdf13b759c68d5eb7056a717d2b (diff)
sched: Do not consider SCHED_IDLE tasks to be cache hot
Commit: ef8002f6848236de5adc613063ebeabddea8a6fb upstream This patch adds a check in task_hot to return if the task has SCHED_IDLE policy. SCHED_IDLE tasks have very low weight, and when run with regular workloads, are typically scheduled many milliseconds apart. There is no need to consider these tasks hot for load balancing. Signed-off-by: Nikhil Rao <ncrao@google.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <1287173550-30365-2-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Mike Galbraith <efault@gmx.de> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--kernel/sched.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 87e3b2bc4dd4..0a1fb240ec37 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -2014,6 +2014,9 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd)
if (p->sched_class != &fair_sched_class)
return 0;
+ if (unlikely(p->policy == SCHED_IDLE))
+ return 0;
+
/*
* Buddy candidates are cache hot:
*/