Re: [patch] sched: fix newly idle load balance in case of SMT

From: Ingo Molnar
Date: Tue Jul 17 2007 - 04:16:10 EST



* Siddha, Suresh B <suresh.b.siddha@xxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/