Messages in this thread | | | Date | Mon, 7 Jul 2014 17:42:30 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFCv2 PATCH 00/23] sched: Energy cost model for energy-aware scheduling |
| |
On Mon, Jul 07, 2014 at 03:00:18PM +0100, Morten Rasmussen wrote: > > Could this be addressed by making the scheduler more "proactive" and, > > rather than just looking at the current energy diff, guesstimate what it > > would be if not placing a task at all on the CPU? If for example there > > is no other task running on that CPU, could energy_diff_task() take into > > account the next deeper C-state rather than just the current one? This > > way we may be able to achieve more packing even on fully symmetric > > systems and allow CPUs to go into deeper sleep states. > > I think it would be possible to bias the choice of cpu either by > considering potential energy savings by letting some cpus get into a > deeper C-state, or applying a static bias towards some cpus (lower cpuid > for example). Since it is in the wakeup path it must not be too complex > to figure out though. > > I haven't seen the problem in reality yet. When I tried the short tasks > test with all cpus using the same energy model I got tasks consolidated > on either of the clusters. The consolidation cluster sometimes changed > during the test. > > There is a lot of tuning to be done, that is for sure. We will have to > make similar decisions for the periodic/idle balance path as well.
So one of the things I mentioned previously (on IRC, to Morton) is that we can use the energy numbers (P and C state) to precompute whether or not race-to-idle makes sense for the platform. Or if it benefits from packing etc..
So at topology setup time we can statically determine some of these policies (maybe with a few parameters) and take it from there.
So if the platform benefits from packing, we can set the appropriate topology bits to do so. If it benefits from race-to-idle, it can select that, etc.
[unhandled content-type:application/pgp-signature] | |