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/

Reply via email to