Messages in this thread Patch in this message | | | Date | Mon, 27 Feb 2006 17:56:12 +1100 | From | Peter Williams <> | Subject | Re: [PATCH] sched: smpnice - fix average load per run queue calculations |
| |
Peter Williams wrote: > The logical value to use for the average load per task on a run queue > without any runnable tasks is the "default" load for a nice==0 task. > Failure to do this may lead to anomalies in try_to_wake_up(), etc. > > Signed-off-by: Peter Williams <pwil3058@bigpond.com.au>
I missed a bit. Here's a fixed patch.
Signed-off-by: Peter Williams <pwil3058@bigpond.com.au>
Sorry, Peter -- Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious." -- Ambrose Bierce Index: MM-2.6.X/kernel/sched.c =================================================================== --- MM-2.6.X.orig/kernel/sched.c 2006-02-27 17:18:12.000000000 +1100 +++ MM-2.6.X/kernel/sched.c 2006-02-27 17:53:49.000000000 +1100 @@ -1058,7 +1058,7 @@ static inline unsigned long cpu_avg_load runqueue_t *rq = cpu_rq(cpu); unsigned long n = rq->nr_running; - return n ? rq->raw_weighted_load / n : rq->raw_weighted_load; + return n ? rq->raw_weighted_load / n : SCHED_LOAD_SCALE; } /* @@ -2153,6 +2153,8 @@ find_busiest_group(struct sched_domain * min(busiest_load_per_task, max_load); if (this_nr_running) this_load_per_task /= this_nr_running; + else + this_load_per_task = SCHED_LOAD_SCALE; pwr_now += this->cpu_power * min(this_load_per_task, this_load); pwr_now /= SCHED_LOAD_SCALE; | |