Re: [PATCH v6 0/7] consolidate and cleanup CPU capacity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For a CPPC platform + EM/EAS (but without AMU):
Tested-by: Pierre Gondois <pierre.gondois@xxxxxxx>

On 11/9/23 11:14, Vincent Guittot wrote:
This is the 1st part of consolidating how the max compute capacity is
used in the scheduler and how we calculate the frequency for a level of
utilization.

Fix some unconsistancy when computing frequency for an utilization. There
can be a mismatch between energy model and schedutil.

Next step will be to make a difference between the original
max compute capacity of a CPU and what is currently available when
there is a capping applying forever (i.e. seconds or more).

Changes since v5:
- remove useless return in freq_inv_set_max_ratio()
- Add tags

Changes since v4:
- Capitalize the verb in subject
- Remove usless parentheses in cppc_get_dmi_max_khz()
- Use freq_ref pattern everywhere
- Fix MHz / kHz units conversion for cppc_cpufreq
- Move default definition of arch_scale_freq_ref() in
   include/linux/sched/topology.h beside arch_scale_cpu_capacity
   which faces similar default declaration behavior. This location covers
   all cases with arch and CONFIG_* which was not the case with previous
   attempts.

Changes since v3:
- Split patch 5 cpufreq/cppc
- Fix topology_init_cpu_capacity_cppc()
- Fix init if AMU ratio
- Added some tags

Changes since v2:
- Remove the 1st patch which has been queued in tip
- Rework how to initialize the reference frequency for cppc_cpufreq and
   change topology_init_cpu_capacity_cppc() to also set capacity_ref_freq
- Add a RFC to convert AMU to use arch_scale_freq_ref and move the config
   of the AMU ratio to be done when intializing cpu capacity and
   capacity_ref_freq
- Added some tags

Changes since v1:
- Fix typos
- Added changes in cpufreq to use arch_scale_freq_ref() when calling
   arch_set_freq_scale (patch 3).
- arch_scale_freq_ref() is always defined and returns 0 (as proposed
   by Ionela) when not defined by the arch. This simplifies the code with
   the addition of patch 3.
- Simplify Energy Model which always uses arch_scale_freq_ref(). The
   latter returns 0 when not defined by arch instead of last item of the
   perf domain. This is not a problem because the function is only defined
   for compilation purpose in this case and we don't care about the
   returned value. (patch 5)
- Added changes in cppc cpufreq to set capacity_ref_freq (patch 6)
- Added reviewed tag for patch 1 which got a minor change but not for
   others as I did some changes which could make previous reviewed tag
   no more relevant.

Vincent Guittot (7):
   topology: Add a new arch_scale_freq_reference
   cpufreq: Use the fixed and coherent frequency for scaling capacity
   cpufreq/schedutil: Use a fixed reference frequency
   energy_model: Use a fixed reference frequency
   cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf}
   cpufreq/cppc: Set the frequency used for computing the capacity
   arm64/amu: Use capacity_ref_freq to set AMU ratio

  arch/arm/include/asm/topology.h   |   1 +
  arch/arm64/include/asm/topology.h |   1 +
  arch/arm64/kernel/topology.c      |  26 +++---
  arch/riscv/include/asm/topology.h |   1 +
  drivers/acpi/cppc_acpi.c          | 104 ++++++++++++++++++++++
  drivers/base/arch_topology.c      |  56 ++++++++----
  drivers/cpufreq/cppc_cpufreq.c    | 139 ++++--------------------------
  drivers/cpufreq/cpufreq.c         |   4 +-
  include/acpi/cppc_acpi.h          |   2 +
  include/linux/arch_topology.h     |   8 ++
  include/linux/cpufreq.h           |   1 +
  include/linux/energy_model.h      |   6 +-
  include/linux/sched/topology.h    |   8 ++
  kernel/sched/cpufreq_schedutil.c  |  26 +++++-
  14 files changed, 224 insertions(+), 159 deletions(-)





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux