Skip to content

cpufreq: transition-latency cleanups

Viresh Kumar linux-pm linuxppc-dev lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest9 patches 14 repliesIn review
  2. v2 RFC6 patches 9 repliesSuperseded
  3. v16 patches 6 repliesSuperseded

Changes in v3 from the cover letter

- 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.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9cpufreq: governor: Drop min_sampling_rateDocumentation/admin-guide/pm/cpufreq.rst drivers/cpufreq/cpufreq_conservative.c drivers/cpufreq/cpufreq_governor.c +3 more+2 -370 replies
2/9cpufreq: Use transition_delay_us for legacy governors as welldrivers/cpufreq/cpufreq.c drivers/cpufreq/cpufreq_governor.c include/linux/cpufreq.h +1 more+18 -182 replies
3/9cpufreq: Cap the default transition delay value to 10 msdrivers/cpufreq/cpufreq.c+13 -210 replies
4/9cpufreq: Don't set transition_latency for setpolicy driversdrivers/cpufreq/intel_pstate.c drivers/cpufreq/longrun.c+0 -20 replies
5/9cpufreq: arm_big_little: Make ->get_transition_latency() mandatorydrivers/cpufreq/arm_big_little.c+4 -60 replies
6/9cpufreq: Replace "max_transition_latency" with "dynamic_switching"drivers/cpufreq/cpufreq.c drivers/cpufreq/cpufreq_governor.h include/linux/cpufreq.h+7 -120 replies
7/9cpufreq: schedutil: Set dynamic_switching to truekernel/sched/cpufreq_schedutil.c+1 -00 replies
8/9cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flagdrivers/cpufreq/cpufreq-nforce2.c drivers/cpufreq/cpufreq.c drivers/cpufreq/elanfreq.c +8 more+26 -181 reply
9/9cpufreq: Allow dynamic switching with CPUFREQ_ETERNAL latencydrivers/cpufreq/cpufreq.c+1 -20 replies

Reviews trailers per patch

1 of 9 patches has a Reviewed-by or Acked-by.

PatchDominik Brodowski
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9R-b
9/9

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

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

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(-)
Signature · 1 line
2.13.0.71.gd7076ec9c9cb