[PATCH v6 0/4] Add support for AArch64 AMUv1-based arch_freq_get_on_cpu
Vanshidhar Konda
vanshikonda at os.amperecomputing.com
Sat Jul 13 17:32:43 PDT 2024
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.
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