[PATCH] sched: fix interactive task starvation
authorMike Galbraith <efault@gmx.de>
Tue, 11 Apr 2006 05:52:44 +0000 (22:52 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 11 Apr 2006 13:18:30 +0000 (06:18 -0700)
commit5ce74abe788a26698876e66b9c9ce7e7acc25413
tree2e0c2cfc1aad32a9e2903f5e01256f1ed43982e4
parent019ff2d57b0bbe77d1eca19f5b634e5e7ff2a0b8
[PATCH] sched: fix interactive task starvation

Fix a starvation problem that occurs when a stream of highly interactive tasks
delay an array switch for extended periods despite EXPIRED_STARVING(rq) being
true.  AFAIKT, the only choice is to enqueue awakening tasks on the expired
array in this case.

Without this patch, it can be nearly impossible to remotely login to a busy
server, and interactive shell commands can starve for minutes.

Also, convert the EXPIRED_STARVING macro into an inline function which humans
can understand.

Signed-off-by: Mike Galbraith <efault@gmx.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Acked-by: Con Kolivas <kernel@kolivas.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/sched.c