[PATCH V3 0/9] cpufreq: transition-latency cleanups

From: Viresh Kumar
Date: Wed Jul 19 2017 - 06:13:19 EST


Hi Rafael,

This series tries to cleanup the code around transition-latency and its
users. Some of the old legacy code, which may not make much sense now,
is dropped as well. And some code consolidation is also done across
governors.

Based of: v4.13-rc1
Tested on: ARM64 Hikey board.

I have pushed it here as well (which gets tested by kbuild test bot):

git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git cpufreq/transition-latency

V2->V3:
- Rearranged patches to keep related stuff together
- Introduce CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING flag (Rafael)
- Minor optimization in cpufreq_policy_transition_delay_us() and moved
it to cpufreq.c (Rafael)
- Allow dynamic switching for drivers which don't know their transition
latency.

V1->V2:
- While we still get rid of the limitation of 10ms for using
ondemand/conservative, but we preserve the earlier behavior where the
transition latency set to CPUFREQ_ETERNAL would not allow use of
ondemand/conservative governors. Thanks to Dominik for his feedback on
that.

--
viresh

Viresh Kumar (9):
cpufreq: governor: Drop min_sampling_rate
cpufreq: Use transition_delay_us for legacy governors as well
cpufreq: Cap the default transition delay value to 10 ms
cpufreq: Don't set transition_latency for setpolicy drivers
cpufreq: arm_big_little: Make ->get_transition_latency() mandatory
cpufreq: Replace "max_transition_latency" with "dynamic_switching"
cpufreq: schedutil: Set dynamic_switching to true
cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag
cpufreq: Allow dynamic switching with CPUFREQ_ETERNAL latency

Documentation/admin-guide/pm/cpufreq.rst | 8 --------
drivers/cpufreq/arm_big_little.c | 10 ++++------
drivers/cpufreq/cpufreq-nforce2.c | 2 +-
drivers/cpufreq/cpufreq.c | 34 ++++++++++++++++++++++++++++----
drivers/cpufreq/cpufreq_conservative.c | 6 ------
drivers/cpufreq/cpufreq_governor.c | 17 ++--------------
drivers/cpufreq/cpufreq_governor.h | 3 +--
drivers/cpufreq/cpufreq_ondemand.c | 12 -----------
drivers/cpufreq/elanfreq.c | 4 +---
drivers/cpufreq/gx-suspmod.c | 2 +-
drivers/cpufreq/intel_pstate.c | 1 -
drivers/cpufreq/longrun.c | 1 -
drivers/cpufreq/pmac32-cpufreq.c | 7 +++++--
drivers/cpufreq/sa1100-cpufreq.c | 5 +++--
drivers/cpufreq/sa1110-cpufreq.c | 5 +++--
drivers/cpufreq/sh-cpufreq.c | 3 +--
drivers/cpufreq/speedstep-smi.c | 2 +-
drivers/cpufreq/unicore2-cpufreq.c | 3 +--
include/linux/cpufreq.h | 18 ++++++++---------
kernel/sched/cpufreq_schedutil.c | 12 ++---------
20 files changed, 65 insertions(+), 90 deletions(-)

--
2.13.0.71.gd7076ec9c9cb