]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
sched: Do not consider SCHED_IDLE tasks to be cache hot
authorNikhil Rao <ncrao@google.com>
Thu, 10 Feb 2011 09:23:25 +0000 (10:23 +0100)
committerAK <andi@firstfloor.org>
Thu, 31 Mar 2011 18:57:58 +0000 (11:57 -0700)
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>
kernel/sched.c

index 1747071e26f133ae676d39e9699b468600bddb92..5ea39ade3ad60c49adc9e53a5c89ebfaec5ecd3e 100644 (file)
@@ -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:
         */