[PATCH v3 0/5] cpufreq: improve frequency invariance support

From: Ionela Voinescu
Date: Mon Aug 24 2020 - 17:03:51 EST


Hi guys,

Sorry for the delay in sending v3. Please find below the changes to this
series:

v2->v3
- v2 can be found at [2]
- 1/5 was introduced to check input frequencies to
arch_set_freq_scale() as recommended by Rafael
- The previous 2/7 was squashed into 1/7 - now 2/5, with additions to
the changelog as suggested by Rafael.
- The previous 3/7 (BL_SWITCHER handling) was dropped to be handled
in a separate patch. This does not change the current functionality.
- The previous 4/7 - now 3/5 is simplified as suggested by Viresh.
- 3/5 - cpufreq_supports_freq_invariance() replaces
cpufreq_sets_freq_scale(). The meaning chosen for
cpufreq_supports_freq_invariance() is whether it can set the frequency
scale factor, not whether arch_set_freq_scale() actually does.
- 4/5 - Change after Catalin's Ack: The changes to
arch_set_thermal_pressure() were dropped as they were done in a separate
patch. Therefore this patch now has a subset of the previous changes
at 5/7
- 5/5 - Change after Catalin's Ack:
s/cpufreq_sets_freq_scale/cpufreq_supports_freq_invariance
- v3 is based on linux-next 20200814


v1 -> v2:
- v1 can be found at [1]
- No cpufreq flags are introduced
- Previous patches 2/8 and 3/8 were squashed in this series under 1/7,
to ensure bisection.
- 2/7 was introduced as a proposal for Viresh's suggestion to use
policy->cur in the call to arch_set_freq_scale() and is extended to
support drivers that implement the target() callback as well
- Additional commit message changes are added to 1/7 and 2/7, to
clarify that the definition of arch_set_freq_scale() will filter
settings of the scale factor, if unwanted
- 3/7 disables setting of the scale factor for
CONFIG_BL_SWITCHER, as Dietmar suggested
- Small change introduced in 4/7 to disable cpufreq-based frequency
invariance for the users of the default arch_set_freq_scale() call
which will not actually set a scale factor
- build issue solved (reported by 0day test)
- v2 is based on linux-next 20200716
- all functional tests in v1 were repeated for v2


[1] https://lore.kernel.org/lkml/20200701090751.7543-1-ionela.voinescu@xxxxxxx/
[2] https://lore.kernel.org/lkml/20200722093732.14297-1-ionela.voinescu@xxxxxxx/

Thank you,
Ionela.

Ionela Voinescu (3):
arch_topology: validate input frequencies to arch_set_freq_scale()
cpufreq: move invariance setter calls in cpufreq core
cpufreq: report whether cpufreq supports Frequency Invariance (FI)

Valentin Schneider (2):
arch_topology, cpufreq: constify arch_* cpumasks
arch_topology, arm, arm64: define arch_scale_freq_invariant()

arch/arm/include/asm/topology.h | 1 +
arch/arm64/include/asm/topology.h | 1 +
arch/arm64/kernel/topology.c | 9 ++++++-
drivers/base/arch_topology.c | 13 +++++++--
drivers/cpufreq/cpufreq-dt.c | 10 +------
drivers/cpufreq/cpufreq.c | 37 +++++++++++++++++++++++---
drivers/cpufreq/qcom-cpufreq-hw.c | 9 +------
drivers/cpufreq/scmi-cpufreq.c | 12 ++-------
drivers/cpufreq/scpi-cpufreq.c | 6 +----
drivers/cpufreq/vexpress-spc-cpufreq.c | 12 ++-------
include/linux/arch_topology.h | 4 ++-
include/linux/cpufreq.h | 8 +++++-
12 files changed, 72 insertions(+), 50 deletions(-)


base-commit: 4993e4fe12af2d71b6a3ad16e1fcdc566795fda1
--
2.17.1