* Siddha, Suresh B <[EMAIL PROTECTED]> wrote:

> In the presence of SMT, newly idle balance was never happening for 
> multi-core and SMP domains(even when both the logical siblings are 
> idle).
> 
> If thread 0 is already idle and when thread 1 is about to go to idle, 
> newly idle load balance always think that one of the threads is not 
> idle and skips doing the newly idle load balance for multi-core and 
> SMP domains.
> 
> This is because of the idle_cpu() macro, which checks if the current 
> process on a cpu is an idle process. But this is not the case for the 
> thread doing the load_balance_newidle().
> 
> Fix this by using runqueue's nr_running field instead of idle_cpu(). 
> And also skip the logic of 'only one idle cpu in the group will be 
> doing load balancing' during newly idle case.

ah, indeed - good catch! I've checked the other uses of idle_cpu() and 
those seem to be fine. I've added your patch to my queue.

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