Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Subject | [PATCH] sched: find_busiest_node | From | Frank Cornelis <> | Date | 22 Aug 2003 14:39:05 +0200 |
| |
Hi,
In order to get the best possible resolution we need to use NR_CPUS instead of the constant value 10. load is an int, so no need to worry about overflows...
Frank.
sched.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff -Nru a/kernel/sched.c b/kernel/sched.c --- a/kernel/sched.c Fri Aug 22 14:24:11 2003 +++ b/kernel/sched.c Fri Aug 22 14:24:11 2003 @@ -849,7 +849,7 @@ * load_{t} = load_{t-1}/2 + nr_node_running_{t} * This way sudden load peaks are flattened out a bit. * Node load is divided by nr_cpus_node() in order to compare nodes - * of different cpu count but also [first] multiplied by 10 to + * of different cpu count but also [first] multiplied by NR_CPUS to * provide better resolution. */ static int find_busiest_node(int this_node) @@ -859,14 +859,14 @@ if (!nr_cpus_node(this_node)) return node; this_load = maxload = (this_rq()->prev_node_load[this_node] >> 1) - + (10 * atomic_read(&node_nr_running[this_node]) + + (NR_CPUS * atomic_read(&node_nr_running[this_node]) / nr_cpus_node(this_node)); this_rq()->prev_node_load[this_node] = this_load; for_each_node_with_cpus(i) { if (i == this_node) continue; load = (this_rq()->prev_node_load[i] >> 1) - + (10 * atomic_read(&node_nr_running[i]) + + (NR_CPUS * atomic_read(&node_nr_running[i]) / nr_cpus_node(i)); this_rq()->prev_node_load[i] = load; if (load > maxload && (100*load > NODE_THRESHOLD*this_load)) {
- 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/
| ![\](/images/icornerr.gif) |