linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 0/7] consolidate and cleanup CPU capacity
@ 2023-12-11 10:48 Vincent Guittot
  2023-12-11 10:48 ` [PATCH v7 1/7] topology: Add a new arch_scale_freq_reference Vincent Guittot
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Vincent Guittot @ 2023-12-11 10:48 UTC (permalink / raw)
  To: linux, catalin.marinas, will, paul.walmsley, palmer, aou,
	sudeep.holla, gregkh, rafael, mingo, peterz, juri.lelli,
	dietmar.eggemann, rostedt, bsegall, mgorman, bristot, vschneid,
	viresh.kumar, lenb, robert.moore, lukasz.luba, ionela.voinescu,
	pierre.gondois, linux-arm-kernel, linux-kernel, linux-riscv,
	linux-pm, linux-acpi
  Cc: conor.dooley, suagrfillet, ajones, lftan, beata.michalska,
	Vincent Guittot

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 v6:
- Rebase on tip/sched/core and fix a conflict
- Add tags

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(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2024-01-23 15:15 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-11 10:48 [PATCH v7 0/7] consolidate and cleanup CPU capacity Vincent Guittot
2023-12-11 10:48 ` [PATCH v7 1/7] topology: Add a new arch_scale_freq_reference Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] sched/topology: Add a new arch_scale_freq_ref() method tip-bot2 for Vincent Guittot
2023-12-11 10:48 ` [PATCH v7 2/7] cpufreq: Use the fixed and coherent frequency for scaling capacity Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2023-12-11 10:48 ` [PATCH v7 3/7] cpufreq/schedutil: Use a fixed reference frequency Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2024-01-23  1:55   ` [PATCH v7 3/7] " Mark Brown
2024-01-23  7:24     ` Vincent Guittot
2024-01-23 15:14       ` Mark Brown
2023-12-11 10:48 ` [PATCH v7 4/7] energy_model: " Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2023-12-11 10:48 ` [PATCH v7 5/7] cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf} Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf}() tip-bot2 for Vincent Guittot
2023-12-11 10:48 ` [PATCH v7 6/7] cpufreq/cppc: Set the frequency used for computing the capacity Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2023-12-11 10:48 ` [PATCH v7 7/7] arm64/amu: Use capacity_ref_freq to set AMU ratio Vincent Guittot
2023-12-23 16:09   ` [tip: sched/core] arm64/amu: Use capacity_ref_freq() " tip-bot2 for Vincent Guittot
2023-12-11 19:52 ` [PATCH v7 0/7] consolidate and cleanup CPU capacity Rafael J. Wysocki
2023-12-12  8:32   ` Vincent Guittot
2023-12-12 11:55     ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).