sched: Do not consider SCHED_IDLE tasks to be cache hot
authorNikhil Rao <ncrao@google.com>
Wed, 13 Oct 2010 19:09:35 +0000 (12:09 -0700)
committerIngo Molnar <mingo@elte.hu>
Mon, 18 Oct 2010 18:52:15 +0000 (20:52 +0200)
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>
kernel/sched.c

index 728081a7ef1c405f1768f45de8945f840d5830a9..771b518e5f1f9f522fe0403f34f884f9aa045f83 100644 (file)
@@ -2025,6 +2025,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:
         */