Messages in this thread | | | Date | Thu, 17 Apr 2014 11:53:11 -0400 (EDT) | From | Nicolas Pitre <> | Subject | Re: [RFC PATCHC 3/3] sched/fair: use the idle state info to choose the idlest cpu |
| |
On Thu, 17 Apr 2014, Daniel Lezcano wrote:
> Ok, refreshed the patchset but before sending it out I would to discuss about > the rational of the changes and the policy, and change the patchset > consequently. > > What order to choose if the cpu is idle ? > > Let's assume all cpus are idle on a dual socket quad core. > > Also, we can reasonably do the hypothesis if the cluster is in low power mode, > the cpus belonging to the same cluster are in the same idle state (putting > apart the auto-promote where we don't have control on). > > If the policy you talk above is 'aggressive power saving', we can follow the > rules with decreasing priority: > > 1. We want to prevent to wakeup the entire cluster > => as the cpus are in the same idle state, by choosing a cpu in > => shallow > state, we should have the guarantee we won't wakeup a cluster (except if no > shallowest idle cpu are found).
This is unclear to me. Obviously, if an entire cluster is down, that means all the CPUs it contains have been idle for a long time. And therefore they shouldn't be subject to selection unless there is no other CPUs available. Is that what you mean?
> 2. We want to prevent to wakeup a cpu which did not reach the target residency > time (will need some work to unify cpuidle idle time and idle task run time) > => with the target residency and, as a first step, with the idle > => stamp, > we can determine if the cpu slept enough
Agreed. However, right now, the scheduler does not have any consideration for that. So this should be done as a separate patch.
> 3. We want to prevent to wakeup a cpu in deep idle state > => by looking for the cpu in shallowest idle state
Obvious.
> 4. We want to prevent to wakeup a cpu where the exit latency is longer than > the expected run time of the task (and the time to migrate the task ?)
Sure. That would be a case for using task packing even if the policy is set to performance rather than powersave whereas task packing is normally for powersave.
Nicolas
| |