summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorNikhil Rao <ncrao@google.com>2011-02-10 10:23:25 +0100
committerAK <andi@firstfloor.org>2011-03-31 11:57:58 -0700
commit1f8e01cc3447bb1c18014be7de43e1fef344e0c1 (patch)
treeee0f43587926915bb1e9861930102f6ed989e50f /kernel
parent279d138207ac3273bd233f75aba8eb49b2f1bc0f (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> Signed-off-by: Andi Kleen <ak@linux.intel.com> 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>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 1747071e26f1..5ea39ade3ad6 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1972,6 +1972,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:
*/