public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched: find_busiest_node
@ 2003-08-22 12:39 Frank Cornelis
  0 siblings, 0 replies; only message in thread
From: Frank Cornelis @ 2003-08-22 12:39 UTC (permalink / raw)
  To: linux-kernel; +Cc: Frank Cornelis

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)) {




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-08-22 12:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-22 12:39 [PATCH] sched: find_busiest_node Frank Cornelis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox