Great thanks for test. Can you try reverting this:
diff -Naurp linux-2.5.75-mm1/kernel/sched.c linux-2.5.75-test/kernel/sched.c
--- linux-2.5.75-mm1/kernel/sched.c 2003-07-13 00:21:30.000000000 +1000
+++ linux-2.5.75-test/kernel/sched.c 2003-07-14 22:13:51.000000000 +1000
@@ -388,19 +388,19 @@ static inline void __activate_task(task_
static inline void activate_task(task_t *p, runqueue_t *rq)
{
long sleep_time = jiffies - p->last_run - 1;
+ long runtime = jiffies - p->avg_start;
if (sleep_time > 0) {
- unsigned long runtime = jiffies - p->avg_start;
-
/*
* Tasks that sleep a long time are categorised as idle and
- * will get just under interactive status with a small runtime
- * to allow them to become interactive or non-interactive rapidly
+ * will get just under interactive status
*/
if (sleep_time > MIN_SLEEP_AVG){
- p->avg_start = jiffies - MIN_SLEEP_AVG;
- p->sleep_avg = MIN_SLEEP_AVG * (MAX_BONUS - INTERACTIVE_DELTA - 1) /
- MAX_BONUS;
+ if (runtime > MAX_SLEEP_AVG){
+ runtime = MAX_SLEEP_AVG;
+ p->avg_start = jiffies - runtime;
+ }
+ p->sleep_avg = runtime * (MAX_BONUS - INTERACTIVE_DELTA - 1) / MAX_BONUS;
} else {
/*
* This code gives a bonus to interactive tasks.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/