From: Con Kolivas This patch backs out a little section which isn't quite right and just might in the wrong circumstances cause unfairness. Goes on top of O11.1 25-akpm/kernel/sched.c | 11 +---------- 1 files changed, 1 insertion(+), 10 deletions(-) diff -puN kernel/sched.c~o11.2int kernel/sched.c --- 25/kernel/sched.c~o11.2int Wed Jul 30 14:22:22 2003 +++ 25-akpm/kernel/sched.c Wed Jul 30 14:22:22 2003 @@ -1286,16 +1286,7 @@ void scheduler_tick(int user_ticks, int if (!TASK_INTERACTIVE(p) || EXPIRED_STARVING(rq)) { if (!rq->expired_timestamp) rq->expired_timestamp = jiffies; - /* - * Long term interactive tasks need to completely - * run out of sleep_avg to be expired, and when they - * do they are put at the start of the expired array - */ - if (unlikely(p->interactive_credit && p->sleep_avg)){ - enqueue_task(p, rq->active); - goto out_unlock; - } - enqueue_task(p, rq->expired); + enqueue_task(p, rq->expired); } else enqueue_task(p, rq->active); } else if (p->mm && !((task_timeslice(p) - p->time_slice) % _