Index: linux-2.6.11-smpnice/kernel/sched.c =================================================================== --- linux-2.6.11-smpnice.orig/kernel/sched.c 2005-05-07 23:25:15.000000000 +1000 +++ linux-2.6.11-smpnice/kernel/sched.c 2005-05-09 21:42:02.000000000 +1000 @@ -953,8 +953,8 @@ static inline unsigned long source_load( * If we are balancing busy runqueues the load is biased by * priority to create 'nice' support across cpus. */ - cpu_load += rq->prio_bias; - load_now += rq->prio_bias; + cpu_load *= rq->prio_bias; + load_now *= rq->prio_bias; } return min(cpu_load, load_now); } @@ -969,8 +969,8 @@ static inline unsigned long target_load( load_now = rq->nr_running * SCHED_LOAD_SCALE; if (idle == NOT_IDLE) { - cpu_load += rq->prio_bias; - load_now += rq->prio_bias; + cpu_load *= rq->prio_bias; + load_now *= rq->prio_bias; } return max(cpu_load, load_now); }