[PATCH] O6.1int

From: Con Kolivas (kernel@kolivas.org)
Date: Wed Jul 16 2003 - 21:13:02 EST


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/



This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:27 EST