[PATCH v6 0/4] Add support for AArch64 AMUv1-based arch_freq_get_on_cpu

Beata Michalska beata.michalska at arm.com
Tue Jul 16 23:58:28 PDT 2024


On Sat, Jul 13, 2024 at 05:32:43PM -0700, Vanshidhar Konda wrote:
> On Mon, Jun 03, 2024 at 09:21:50AM +0100, Beata Michalska wrote:
> > Introducing arm64 specific version of arch_freq_get_on_cpu, cashing on
> > existing implementation for FIE and AMUv1 support: the frequency scale
> > factor, updated on each sched tick, serves as a base for retrieving
> > the frequency for a given CPU, representing an average frequency
> > reported between the ticks - thus its accuracy is limited.
> > 
> > The changes have been rather lightly (due to some limitations) tested on
> > an FVP model. Note that some small discrepancies have been observed while
> 
> I've tested these changes (v6) on AmpereOne system and the results look correct.
> The frequency reported by scaling_cur_freq is as expected for housekeeping cpus,
> idle as well as isolated cpus.
>
That's greatly appreciated - thank you for that!
This series depends on [1] so once the relevant changes are ready will send an
updated to expose the average freq through a relevant sysfs attrib.

---
[1] https://lore.kernel.org/all/ZmrB_DqtmVpvG30l@arm.com/
---
Best Regards
Beata
> Thanks,
> Vanshi
> 
> > testing (on the model) and this is currently being investigated, though it
> > should not have any significant impact on the overall results.
> > 
> > Relevant discussions:
> > [1] https://lore.kernel.org/all/20240229162520.970986-1-vanshikonda@os.amperecomputing.com/
> > [2] https://lore.kernel.org/all/7eozim2xnepacnnkzxlbx34hib4otycnbn4dqymfziqou5lw5u@5xzpv3t7sxo3/
> > [3] https://lore.kernel.org/all/20231212072617.14756-1-lihuisong@huawei.com/
> > [4] https://lore.kernel.org/lkml/ZIHpd6unkOtYVEqP@e120325.cambridge.arm.com/T/#m4e74cb5a0aaa353c60fedc6cfb95ab7a6e381e3c
> > 
> > v6:
> > - delay allocating cpumask for AMU FIE support instead of invalidating the mask
> >   upon failure to register cpufreq policy notifications
> > - drop the change to cpufreq core (for cpuinfo_cur_freq) as this one will be
> >   sent as a separate change
> > 
> > v5:
> > - Fix invalid access to cpumask
> > - Reworked finding reference cpu when getting the freq
> > 
> > v4:
> > - dropping seqcount
> > - fixing identifying active cpu within given policy
> > - skipping full dynticks cpus when retrieving the freq
> > - bringing back plugging in arch_freq_get_on_cpu into cpuinfo_cur_freq
> > 
> > v3:
> > - dropping changes to cpufreq_verify_current_freq
> > - pulling in changes from Ionela initializing capacity_freq_ref to 0
> >  (thanks for that!)  and applying suggestions made by her during last review:
> > 	- switching to arch_scale_freq_capacity and arch_scale_freq_ref when
> > 	  reversing freq scale factor computation
> > 	- swapping shift with multiplication
> > - adding time limit for considering last scale update as valid
> > - updating frequency scale factor upon entering idle
> > 
> > v2:
> > - Splitting the patches
> > - Adding comment for full dyntick mode
> > - Plugging arch_freq_get_on_cpu into cpufreq_verify_current_freq instead
> >  of in show_cpuinfo_cur_freq to allow the framework to stay more in sync
> >  with potential freq changes
> > 
> > 
> > 
> > Beata Michalska (3):
> >  arm64: amu: Delay allocating cpumask for AMU FIE support
> >  arm64: Provide an AMU-based version of arch_freq_get_on_cpu
> >  arm64: Update AMU-based frequency scale factor on entering idle
> > 
> > Ionela Voinescu (1):
> >  arch_topology: init capacity_freq_ref to 0
> > 
> > arch/arm64/kernel/topology.c | 145 +++++++++++++++++++++++++++++------
> > drivers/base/arch_topology.c |   8 +-
> > 2 files changed, 127 insertions(+), 26 deletions(-)
> > 
> > -- 
> > 2.25.1
> > 



More information about the linux-arm-kernel mailing list