Re: [patch] sched: fix active load balance

From: Nick Piggin
Date: Wed Apr 13 2005 - 18:08:53 EST


Siddha, Suresh B wrote:
On Wed, Apr 13, 2005 at 10:08:28PM +0200, Ingo Molnar wrote:

* Siddha, Suresh B <suresh.b.siddha@xxxxxxxxx> wrote:


- 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;
- }
- }


Yep that was broken :(
Thanks for picking that up Suresh.

hm, the right fix i think is to do:

for_each_domain(target_cpu, tmp) {
if ((tmp->flags & SD_LOAD_BALANCE) &&
cpu_isset(busiest_cpu, tmp->span)) {
sd = tmp;
break;
}
}


Your suggestion also looks similar to my patch. You are also breaking on the first one.


because when balancing we want to match the widest-scope domain, not the first one.


We want the first domain spanning both the cpu's. That is the domain where
normal load balance failed and we restore to active load balance.


Yes, that's right.

--
SUSE Labs, Novell Inc.

-
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/