On Wed, Apr 13, 2005 at 10:08:28PM +0200, Ingo Molnar wrote: > > * Siddha, Suresh B <[EMAIL PROTECTED]> 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; > > - } > > - } > > 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. thanks, suresh - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/