diff options
author | Con Kolivas <kernel@kolivas.org> | 2006-03-31 05:31:29 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-31 15:18:59 -0500 |
commit | 7c4bb1f9b3788309e1159961c606ba0bdf7ed382 (patch) | |
tree | 47051dcde0cc24ec123e9ae3043465cc677a8c06 /kernel/sched.c | |
parent | 5138930e6a69f1c7851a82d7cedaa01fad029fcf (diff) |
[PATCH] sched: remove on runqueue requeueing
On runqueue time is used to elevate priority in schedule().
In the code it currently requeues tasks even if their priority is not
elevated, which would end up placing them at the end of their runqueue
array effectively delaying them instead of improving their priority.
Bug spotted by Mike Galbraith <efault@gmx.de>
This patch removes this requeueing.
Signed-off-by: Con Kolivas <kernel@kolivas.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 3055fe806ff7..73bb4d9ef989 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -3023,8 +3023,7 @@ go_idle: | |||
3023 | dequeue_task(next, array); | 3023 | dequeue_task(next, array); |
3024 | next->prio = new_prio; | 3024 | next->prio = new_prio; |
3025 | enqueue_task(next, array); | 3025 | enqueue_task(next, array); |
3026 | } else | 3026 | } |
3027 | requeue_task(next, array); | ||
3028 | } | 3027 | } |
3029 | next->sleep_type = SLEEP_NORMAL; | 3028 | next->sleep_type = SLEEP_NORMAL; |
3030 | switch_tasks: | 3029 | switch_tasks: |