| From 9c47bab95bb2c15fe88da9ab8da878105a7e1db5 Mon Sep 17 00:00:00 2001 |
| From: Nikhil Rao <ncrao@google.com> |
| Date: Thu, 10 Feb 2011 10:23:25 +0100 |
| Subject: 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> |
| --- |
| kernel/sched.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/kernel/sched.c |
| +++ b/kernel/sched.c |
| @@ -2014,6 +2014,9 @@ task_hot(struct task_struct *p, u64 now, |
| if (p->sched_class != &fair_sched_class) |
| return 0; |
| |
| + if (unlikely(p->policy == SCHED_IDLE)) |
| + return 0; |
| + |
| /* |
| * Buddy candidates are cache hot: |
| */ |