Messages in this thread Patch in this message | | | From | Con Kolivas <> | Subject | [PATCH] O6.1int | Date | Thu, 17 Jul 2003 12:13:02 +1000 |
| |
The bug in the O6int patch probably wasn't responsible for WIktor's problem actually. It shouldn't manifest for a very long time. Anyway here is the fix and a couple of minor cleanups.
--- linux-2.6.0-test1-mm1/kernel/sched.c 2003-07-17 11:24:54.000000000 +1000 +++ linux-2.6.0-testck1/kernel/sched.c 2003-07-17 11:59:01.000000000 +1000 @@ -78,7 +78,7 @@ #define STARVATION_LIMIT (10*HZ) #define SLEEP_BUFFER (HZ/100) #define NODE_THRESHOLD 125 -#define MAX_BONUS (40 * PRIO_BONUS_RATIO / 100) +#define MAX_BONUS (MAX_USER_PRIO * PRIO_BONUS_RATIO / 100) /* * If a task is 'interactive' then we reinsert it in the active @@ -390,8 +390,6 @@ static inline void activate_task(task_t long sleep_time = jiffies - p->last_run - 1; 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 @@ -402,6 +400,11 @@ static inline void activate_task(task_t p->sleep_avg = MIN_SLEEP_AVG * (MAX_BONUS - INTERACTIVE_DELTA - 2) / MAX_BONUS; } else { + unsigned long runtime = jiffies - p->avg_start; + + if (runtime > MAX_SLEEP_AVG) + runtime = MAX_SLEEP_AVG; + /* * 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/
| |