Messages in this thread | | | Subject | Re: [RFC PATCH 0/3] CFS idle injection | From | Dietmar Eggemann <> | Date | Fri, 6 Nov 2015 21:55:49 +0000 |
| |
On 11/06/2015 07:10 PM, Jacob Pan wrote: > On Fri, 6 Nov 2015 18:30:01 +0000 > Dietmar Eggemann <dietmar.eggemann@arm.com> wrote: > >> On 05/11/15 10:12, Peter Zijlstra wrote: >>> >>> People, trim your emails! >>> >>> On Wed, Nov 04, 2015 at 08:58:30AM -0800, Jacob Pan wrote: >>> >>>>> I also like #2 too. Specially now that it is not limited to a >>>>> specific platform. One question though, could you still keep the >>>>> cooling device support of it? In some systems, it might make >>>>> sense to enable / disable idle injections based on temperature. >>> >>>> One of the key difference between 1 and 2 is that #2 is open loop >>>> control, since we don't have CPU c-states info baked into >>>> scheduler. >>> >>> _yet_, there's people working on that. The whole power aware >>> scheduling stuff needs that. >> >> Isn't the idle state information (rq->idle_state) already used in >> find_idlest_cpu()? >> >> What we use in energy aware scheduling is quite similar but since >> we're interested in the index information of the c-state (to access >> the right element of the idle_state vectors of the energy model, we >> added rq->idle_state_idx. >> > what i am interested is not per cpu idle state but rather at the package > level or domain. It must be an indication for the overlapped idle time. > Usually has to come from HW counters.
I see. We have a similar problem with the Energy Model (EM) on cluster level (sched domain level DIE). We iterate over the cpus of a sched group and declare the shallowest cpu idle state as the cluster idle state to index our EM. On a typical ARM system we have (active, WFI, cpu-off and cluster-off). But I guess for you the idle state index is only for core idle states and you can't draw any conclusions from this for the package idle states.
| |