[patch] sched: fix active load balance

From: Siddha, Suresh B
Date: Wed Apr 13 2005 - 14:10:18 EST


Recent changes to active load balance (sched2-fix-smt-scheduling-problems.patch
in -mm) is not resulting in any task movement from busiest to target_cpu.
Attached patch(ontop of -mm) fixes this issue.

Signed-off-by: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>

--- linux-2.6.12-rc2-mm3/kernel/sched.c 2005-04-11 23:08:30.875103512 -0700
+++ linux/kernel/sched.c 2005-04-13 10:44:37.400829992 -0700
@@ -2131,7 +2131,7 @@
*/
static void active_load_balance(runqueue_t *busiest_rq, int busiest_cpu)
{
- struct sched_domain *tmp = NULL, *sd;
+ struct sched_domain *sd;
runqueue_t *target_rq;
int target_cpu = busiest_rq->push_cpu;

@@ -2152,13 +2152,10 @@
double_lock_balance(busiest_rq, target_rq);

/* Search for an sd spanning us and the target CPU. */
- for_each_domain(target_cpu, sd) {
+ for_each_domain(target_cpu, sd)
if ((sd->flags & SD_LOAD_BALANCE) &&
- cpu_isset(busiest_cpu, sd->span)) {
- sd = tmp;
+ cpu_isset(busiest_cpu, sd->span))
break;
- }
- }

if (unlikely(sd == NULL))
goto out;
-
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/