Re: sched: Avoid SMT siblings in select_idle_sibling() if possible

From: Peter Zijlstra
Date: Mon Feb 20 2012 - 09:41:21 EST


On Fri, 2011-11-18 at 16:14 +0100, Mike Galbraith wrote:

> ---
> kernel/sched_fair.c | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
>
> Index: linux-3.0-tip/kernel/sched_fair.c
> ===================================================================
> --- linux-3.0-tip.orig/kernel/sched_fair.c
> +++ linux-3.0-tip/kernel/sched_fair.c
> @@ -2276,17 +2276,11 @@ static int select_idle_sibling(struct ta
> for_each_cpu_and(i, sched_domain_span(sd), tsk_cpus_allowed(p)) {
> if (idle_cpu(i)) {
> target = i;
> + if (sd->flags & SD_SHARE_CPUPOWER)
> + continue;
> break;
> }
> }
> -
> - /*
> - * Lets stop looking for an idle sibling when we reached
> - * the domain that spans the current cpu and prev_cpu.
> - */
> - if (cpumask_test_cpu(cpu, sched_domain_span(sd)) &&
> - cpumask_test_cpu(prev_cpu, sched_domain_span(sd)))
> - break;
> }
> rcu_read_unlock();

Mike, Suresh, did we ever get this sorted? I was looking at
select_idle_sibling() and it looks like we dropped this.

Also, did anybody ever get an answer from a HW guy on why sharing stuff
over SMT threads is so much worse than sharing it over proper cores? Its
not like this workload actually does anything concurrently.

I was looking at this code due to vatsa wanting to do SD_BALANCE_WAKE.


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