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

From: Suresh Siddha
Date: Mon Feb 27 2012 - 17:12:20 EST


On Sat, 2012-02-25 at 09:30 +0100, Mike Galbraith wrote:
> My less rotund config shows the L2 penalty decidedly more prominently.
> We used to have avg_overlap as a synchronous wakeup hint, but it was
> broken by preemption and whatnot, got the axe to recover some cycles. A
> reliable and dirt cheap replacement would be a good thing to have.
>
> TCP_RR and tbench are far way away from the overlap breakeven point on
> E5620, whereas with Q6600s shared L2, you can start converting overlap
> into throughput almost immediately.
>
> 2.4 GHz E5620
> Throughput 248.994 MB/sec 1 procs SD_SHARE_PKG_RESOURCES
> Throughput 379.488 MB/sec 1 procs !SD_SHARE_PKG_RESOURCES
>
> 2.4 GHz Q6600
> Throughput 299.049 MB/sec 1 procs SD_SHARE_PKG_RESOURCES
> Throughput 300.018 MB/sec 1 procs !SD_SHARE_PKG_RESOURCES
>

Also it is not always about just the L2 cache being shared/not or
warm/cold etc. It also depends on the core c-states/p-states etc. It
will cost waking up an idle core and the cost will depend on the what
core-c state it is in. And also if we ping-pong between cores often,
cpufreq governor will come and request for a lower core p-state even
though the load was keeping one core or the other in the socket always
busy at any given point of time.

thanks,
suresh

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