Messages in this thread | | | Date | Mon, 11 Apr 2016 23:20:55 +0200 | Subject | Re: [PATCH 1/2] sched/fair: move cpufreq hook to update_cfs_rq_load_avg() | From | "Rafael J. Wysocki" <> |
| |
On Mon, Apr 11, 2016 at 9:28 PM, Steve Muckle <steve.muckle@linaro.org> wrote: > Hi Rafael, > > On 04/01/2016 02:20 AM, Peter Zijlstra wrote: >>> > My thinking was in CFS we get rid of the (cpu == smp_processor_id()) >>> > condition for calling the cpufreq hook. >>> > >>> > The sched governor can then calculate utilization and frequency required >>> > for cpu. If (cpu == smp_processor_id()), the update is processed >>> > normally. If (cpu != smp_processor_id()) and the new frequency is higher >>> > than cpu's Fcur, the sched gov IPIs cpu to continue running the update >>> > operation. Otherwise, the update is dropped. >>> > >>> > Does that sound plausible? >> >> Can be done I suppose.. > > Currently we drop schedutil updates for a target CPU which do not occur > on that CPU. > > Is this solely due to platforms which must run the cpufreq driver on the > target CPU?
The current code assumes that the CPU running the update will always be the one that gets updated. Anything else would require extra synchronization.
> Are there also shared cpufreq policies where the driver needs to run on > any CPU in the affected policy/freq domain?
Yes, there are, AFAICS, but drivers are expected to cope with that (if I understand the question correctly).
Thanks, Rafael
| |