[PATCH] sched: find_busiest_node

From: Frank Cornelis
Date: Fri Aug 22 2003 - 08:07:38 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/