Messages in this thread | | | Date | Tue, 7 May 2024 10:31:40 +0200 | From | Beata Michalska <> | Subject | Re: [PATCH v4 4/4] cpufreq: Use arch specific feedback for cpuinfo_cur_freq |
| |
On Mon, Apr 29, 2024 at 02:55:15PM +0530, Viresh Kumar wrote: > On 26-04-24, 12:45, Beata Michalska wrote: > > It seems that we might need to revisit the discussion we've had around > > scaling_cur_freq and cpuinfo_cur_freq and the use of arch_freq_get_on_cpu. > > As Vanshi has raised, having both utilizing arch specific feedback for > > getting current frequency is bit problematic and might be confusing at best. > > As arch_freq_get_on_cpu is already used by show_scaling_cur_freq there are not > > many options we are left with, if we want to kee all archs aligned: > > we can either try to rework show_scaling_cur_freq and it's use of > > arch_freq_get_on_cpu, and move it to cpuinfo_cur_freq, which would align with > > relevant docs, though that will not work for x86, or we keep it only there and > > skip updating cpuinfo_cur_freq, going against the guidelines. Other options, > > purely theoretical, would involve making arch_freq_get_on_cpu aware of type of > > the info requested (hw vs sw) or adding yet another arch-specific implementation, > > and those are not really appealing alternatives to say at least. > > What's your opinion on this one ? > > Hi Beata / Vanshidhar, > > Lets forget for once what X86 and ARM may have done and think about it > once again. I also had a chat with Vincent today about this. > > The documentation says it clearly, cpuinfo_cur_freq is the one > received from hardware and scaling_cur_freq is the one requested from > software. > > Now, I know that X86 has made both of them quite similar and I > suggested to make them all aligned (and never received a reply on my > previous message). > > There are few reasons why it may be worth keeping the definition (and > behavior) of the sysfs files as is, at least for ARM: > - First is that the documentation says so. > - There is no point providing the same information via both the > interfaces, there are two interfaces here for a reason. > - There maybe tools around which depend on the documented behavior. > - From userspace, currently there is only one way to know the exact > frequency that the cpufreq governors have requested from a platform, > i.e. the value from scaling_cur_freq. If we make it similar to > cpuinfo_cur_freq, then userspace will never know about the requested > frequency and the eventual one and if they are same or different. > > Lets keep the behavior as is and update only cpuinfo_cur_freq with > arch_freq_get_on_cpu(). > > Makes sense ? > First of all - apologies for late reply.
It all makes sense, though to clarify things up, for my own benefit, and to avoid any potential confusion ....
Adding arch_freq_get_on_cpu to cpuinfo_cur_freq does seem to be the right approach - no argue on this one. Doing that though means we need a way to skip calling arch_freq_get_on_cpu() from show_scaling_cur_freq(), to avoid having both providing the same information when that should not be the case. In the initial approach [1], that was handled by checking whether the cpufreq driver supports 'get' callback (and thus cpuinfo_cur_freq). In case it didn't, things remained unchanged for scaling_cur_freq. That does not seem to be a viable option though, as there are at least few drivers, that will support both: cpuinfo_cur_freq alongside scaling_cur_freq (+ APERF/MPERF) and for those, we would hit the initial problem of both relying on arch_freq_get_on_cpu. So I guess we need another way of avoiding calling arch_freq_get_on_cpu for show_scaling_cur_freq (and most probably avoid calling that one for cpuinfo_cur_freq). Quick idea on how to not bring arch specificity into cpufreq generic code would be to introduce a new flag for cpufreq drivers though that seems a bit stretched. Will ponder a bit about that but in the meantime suggestions are more than welcomed.
Aside: I will most probably send the changes separately from this series to not mix things any further.
--- [1] https://lore.kernel.org/all/20230606155754.245998-1-beata.michalska@arm.com/ --- BR Beata
> -- > viresh
| |