--- linux-2.6.0-test3-mm3-O18/kernel/sched.c 2003-08-23 15:28:47.000000000 +1000 +++ linux-2.6.0-test3-mm3/kernel/sched.c 2003-08-23 15:30:16.000000000 +1000 @@ -140,9 +140,6 @@ #define LOW_CREDIT(p) \ ((p)->interactive_credit < -MAX_SLEEP_AVG) -#define VARYING_CREDIT(p) \ - (!(HIGH_CREDIT(p) || LOW_CREDIT(p))) - #define TASK_PREEMPTS_CURR(p, rq) \ ((p)->prio < (rq)->curr->prio) @@ -434,7 +431,7 @@ static void recalc_task_prio(task_t *p, if (p->sleep_avg > NS_MAX_SLEEP_AVG){ p->sleep_avg = NS_MAX_SLEEP_AVG; - p->interactive_credit += VARYING_CREDIT(p); + p->interactive_credit += !(HIGH_CREDIT(p)); } } } @@ -1548,7 +1545,8 @@ switch_tasks: prev->sleep_avg -= run_time; if ((long)prev->sleep_avg <= 0){ prev->sleep_avg = 0; - prev->interactive_credit -= VARYING_CREDIT(prev); + prev->interactive_credit -= + !(HIGH_CREDIT(prev) || LOW_CREDIT(prev)); } prev->timestamp = now;