On Mon, Jun 24, 2013 at 12:32:00AM +0100, Benjamin Herrenschmidt wrote:
On Fri, 2013-06-21 at 14:34 -0700, Arjan van de Ven wrote:
On 6/21/2013 2:23 PM, Catalin Marinas wrote:
oops sorry I misread your mail (lack of early coffee I suppose)
I can see your point of having a thing for "did we ask for all the performance we could ask for" prior to doing a load balance (although, for power efficiency, if you have two tasks that could run in parallel, it's usually better to run them in parallel... so likely we should balance anyway)
Not necessarily, especially if parallel running implies powering up a full cluster just for one CPU (it depends on the hardware but for example a cluster may not be able to go in deeper sleep states unless all the CPUs in that cluster are idle).
I guess it depends on the system
Sort-of. We have something similar with threads on ppc. IE, the core can only really stop if all threads are. From a Linux persepctive it's a matter of how we define the scope of that 'cluster' Catalin is talking about. I'm sure you do too.
Then there is the package, which adds MC etc...
I think we can say cluster == package so that we use some common terminology. On a big.little configuration (TC2), we have 3xA7 in one package and 2xA15 in the other. So to efficiently stop an entire package (cluster, multi-core etc.) we need to stop all the CPUs it has.