Messages in this thread | | | Subject | Re: [PATCH v2 02/10] cpufreq: provide data for frequency-invariant load-tracking support | From | Dietmar Eggemann <> | Date | Mon, 10 Jul 2017 13:02:54 +0100 |
| |
On 08/07/17 13:09, Rafael J. Wysocki wrote: > On Friday, July 07, 2017 06:06:30 PM Dietmar Eggemann wrote: >> On 07/07/17 17:18, Rafael J. Wysocki wrote: >>> On Fri, Jul 7, 2017 at 6:01 PM, Dietmar Eggemann >>> <dietmar.eggemann@arm.com> wrote: >>>> On 06/07/17 11:40, Viresh Kumar wrote: >>>>> On 06-07-17, 10:49, Dietmar Eggemann wrote: >> >> [...] >> >>>> So what about I call arch_set_freq_scale() in __cpufreq_notify_transition() in the >>>> CPUFREQ_POSTCHANGE case for slow-switching and in cpufreq_driver_fast_switch() for >>>> fast-switching? >>> >>> Why don't you do this in drivers instead of in the core? >>> >>> Ultimately, the driver knows what frequency it has requested, so why >>> can't it call arch_set_freq_scale()? >> >> That's correct but for arm/arm64 we have a lot of different cpufreq >> drivers to deal with. And doing this call to arch_set_freq_scale() once >> in the cpufreq core will cover them all. >> >> [...] > > I'm sort of wondering how many is "a lot" really. For instance, do you really > want all of the existing ARM platforms to use the new stuff even though > it may regress things there in principle?
Yeah, in mainline we probably only care about a couple of them, I know about cpufreq-dt.c, mt8173-cpufreq.c and arm_big_little.c. But a lot of development in arm64 still happens outside mainline and we would have to inform people to provision their cpufreq drivers with this functionality.
With a solution in cpufreq.c we could just implement the functionality in the arch which we then connect to the call in cpufreq.c.
> Anyway, if everyone agrees that doing it in the core is the way to go (Peter?), > why don't you introduce a __weak function for setting policy->cur and > override it from your arch so as to call arch_set_freq_scale() from there?
Yes, I will change this. The #define approach is not really necessary here since we're not in the scheduler hot-path and inlining is not really required here.
Thanks,
-- Dietmar
[...]
| |