Messages in this thread | | | Subject | Re: sched: Avoid SMT siblings in select_idle_sibling() if possible | From | Mike Galbraith <> | Date | Tue, 28 Feb 2012 06:05:14 +0100 |
| |
On Mon, 2012-02-27 at 14:11 -0800, Suresh Siddha wrote: > 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.
Yeah, pinning yields a couple percent on Q6600 box, more on E5620 despite its spiffier gearbox.. likely turbo-boost doing it's thing.
-Mike
| |