From: Beata Michalska <beata.michalska@arm.com>
To: linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org,
ionela.voinescu@arm.com, sudeep.holla@arm.com, will@kernel.org,
catalin.marinas@arm.com, rafael@kernel.org,
viresh.kumar@linaro.org
Cc: sumitg@nvidia.com, yang@os.amperecomputing.com,
vanshikonda@os.amperecomputing.com, lihuisong@huawei.com,
zhanjie9@hisilicon.com, Jonathan Corbet <corbet@lwn.net>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H . Peter Anvin" <hpa@zytor.com>, Phil Auld <pauld@redhat.com>,
x86@kernel.org, linux-doc@vger.kernel.org
Subject: [PATCH v9 0/5] Add support for AArch64 AMUv1-based average freq
Date: Tue, 21 Jan 2025 08:44:30 +0000 [thread overview]
Message-ID: <20250121084435.2839280-1-beata.michalska@arm.com> (raw)
Hi All,
This series adds support for obtaining an average CPU frequency based on
a hardware provided feedback. The average frequency is being exposed via
dedicated yet optional cpufreq sysfs attribute - cpuinfo_avg_freq.
The architecture specific bits are being provided for AArch64, caching on
existing implementation for FIE and AMUv1 support: the frequency scale
factor, updated on each sched tick, serving as a base for retrieving
the frequency for a given CPU, representing an average frequency
reported between the ticks.
The changes have been rather lightly (due to some limitations) tested on
an FVP model.
Note that [PATCH 2/4] arm64: amu: Delay allocating cpumask for AMU FIE support
can be merged independently.
Additionally, this series depends on [6]
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
[5] https://lore.kernel.org/all/20240603081331.3829278-1-beata.michalska@arm.com/
[6] https://lore.kernel.org/all/20240827154818.1195849-1-ionela.voinescu@arm.com/
v9:
- Moved changes to arch_freq_get_on_cpu to a separate patch
v8:
- Drop introducing new function and reuse arch_freq_get_on_cpu, guarding its use
in scaling_cur_freq sysfs handler with dedicated config for x86
v7:
- Dropping 'arch_topology: init capacity_freq_ref to 0' patch from the series
as this one has been sent separately as an independent change
[https://lore.kernel.org/all/20240827154818.1195849-1-ionela.voinescu@arm.com/]
- Including in the series change that introduces new sysfs entry [PATCH 1/4]
- Consequently modifying previously arch_freq_get_on_cpu to match reqs for new
sysfs attribute
- Dropping an idea of considering a CPU that has been idle for a while as a
valid source of information for obtaining an AMU-counter based frequency
- Some minor cosmetic changes
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
CC: Jonathan Corbet <corbet@lwn.net>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: Borislav Petkov <bp@alien8.de>
CC: Dave Hansen <dave.hansen@linux.intel.com>
CC: H. Peter Anvin <hpa@zytor.com>
CC: Phil Auld <pauld@redhat.com>
CC: x86@kernel.org
CC: linux-doc@vger.kernel.org
*** BLURB HERE ***
Beata Michalska (5):
cpufreq: Allow arch_freq_get_on_cpu to return an error
cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry
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 freq scale factor on entering idle
Documentation/admin-guide/pm/cpufreq.rst | 16 ++-
arch/arm64/kernel/topology.c | 144 +++++++++++++++++++----
arch/x86/kernel/cpu/aperfmperf.c | 2 +-
arch/x86/kernel/cpu/proc.c | 7 +-
drivers/cpufreq/Kconfig.x86 | 12 ++
drivers/cpufreq/cpufreq.c | 38 +++++-
include/linux/cpufreq.h | 2 +-
7 files changed, 189 insertions(+), 32 deletions(-)
--
2.25.1
next reply other threads:[~2025-01-21 8:44 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-21 8:44 Beata Michalska [this message]
2025-01-21 8:44 ` [PATCH v9 1/5] cpufreq: Allow arch_freq_get_on_cpu to return an error Beata Michalska
2025-01-21 10:47 ` Viresh Kumar
2025-01-21 15:14 ` Beata Michalska
2025-01-21 18:40 ` Vanshidhar Konda
2025-01-23 21:37 ` Beata Michalska
2025-01-22 6:12 ` Viresh Kumar
2025-01-23 21:45 ` Beata Michalska
2025-01-24 3:33 ` Viresh Kumar
2025-01-28 8:09 ` Beata Michalska
2025-01-28 8:18 ` Viresh Kumar
2025-01-21 10:47 ` Prasanna Kumar T S M
2025-01-24 4:15 ` Prasanna Kumar T S M
2025-01-21 8:44 ` [PATCH v9 2/5] cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry Beata Michalska
2025-01-21 10:53 ` Viresh Kumar
2025-01-21 15:17 ` Beata Michalska
2025-01-22 6:09 ` Viresh Kumar
2025-01-23 21:47 ` Beata Michalska
2025-01-24 3:27 ` Viresh Kumar
2025-01-28 8:43 ` Prasanna Kumar T S M
2025-01-29 11:29 ` Sumit Gupta
2025-01-21 8:44 ` [PATCH v9 3/5] arm64: amu: Delay allocating cpumask for AMU FIE support Beata Michalska
2025-01-24 4:48 ` Prasanna Kumar T S M
2025-01-29 11:17 ` Sumit Gupta
2025-01-21 8:44 ` [PATCH v9 4/5] arm64: Provide an AMU-based version of arch_freq_get_on_cpu Beata Michalska
2025-01-24 4:43 ` Prasanna Kumar T S M
2025-01-28 8:16 ` Beata Michalska
2025-01-28 8:52 ` Prasanna Kumar T S M
2025-01-29 11:15 ` Sumit Gupta
2025-01-21 8:44 ` [PATCH v9 5/5] arm64: Update AMU-based freq scale factor on entering idle Beata Michalska
2025-01-24 4:45 ` Prasanna Kumar T S M
2025-01-29 11:13 ` Sumit Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250121084435.2839280-1-beata.michalska@arm.com \
--to=beata.michalska@arm.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=ionela.voinescu@arm.com \
--cc=lihuisong@huawei.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pauld@redhat.com \
--cc=rafael@kernel.org \
--cc=sudeep.holla@arm.com \
--cc=sumitg@nvidia.com \
--cc=tglx@linutronix.de \
--cc=vanshikonda@os.amperecomputing.com \
--cc=viresh.kumar@linaro.org \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=yang@os.amperecomputing.com \
--cc=zhanjie9@hisilicon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®