[GIT PULL] Power management updates for v6.13-rc1

From: Rafael J. Wysocki
Date: Mon Nov 18 2024 - 05:36:22 EST


Hi Linus,

Please pull from the tag

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-6.13-rc1

with top-most commit c6e2a4c9eed5249c4158bc621882d44e94af3371

Merge branch 'pm-tools'

on top of commit 1a1030d10a6335bb5e6cdb24fc9388d3d9bcc1ac

cpufreq: intel_pstate: Rearrange locking in hybrid_init_cpu_capacity_scaling()

to receive power management updates for 6.13-rc1.

The amd-pstate cpufreq driver gets the majority of changes this time.
They are mostly fixes and cleanups, but one of them causes it to become
the default cpufreq driver on some AMD server platforms.

Apart from that, the menu cpuidle governor is modified to not use iowait
any more, the intel_idle gets a custom C-states table for Granite Rapids
Xeon D, and the intel_pstate driver will use a more aggressive Balance-
performance default EPP value on Granite Rapids now.

There are also some fixes, cleanups and tooling updates.

Specifics:

- Update the amd-pstate driver to set the initial scaling frequency
policy lower bound to be the lowest non-linear frequency (Dhananjay
Ugwekar).

- Enable amd-pstate by default on servers starting with newer AMD Epyc
processors (Swapnil Sapkal).

- Align more codepaths between shared memory and MSR designs in
amd-pstate (Dhananjay Ugwekar).

- Clean up amd-pstate code to rename functions and remove redundant
calls (Dhananjay Ugwekar, Mario Limonciello).

- Do other assorted fixes and cleanups in amd-pstate (Dhananjay Ugwekar
and Mario Limonciello).

- Change the Balance-performance EPP value for Granite Rapids in the
intel_pstate driver to a more performance-biased one (Srinivas
Pandruvada).

- Simplify MSR read on the boot CPU in the ACPI cpufreq driver (Chang
S. Bae).

- Ensure sugov_eas_rebuild_sd() is always called when sugov_init()
succeeds to always enforce sched domains rebuild in case EAS needs
to be enabled (Christian Loehle).

- Switch cpufreq back to platform_driver::remove() (Uwe Kleine-König).

- Use proper frequency unit names in cpufreq (Marcin Juszkiewicz).

- Add a built-in idle states table for Granite Rapids Xeon D to the
intel_idle driver (Artem Bityutskiy).

- Fix some typos in comments in the cpuidle core and drivers (Shen
Lichuan).

- Remove iowait influence from the menu cpuidle governor (Christian
Loehle).

- Add min/max available performance state limits to the Energy Model
management code (Lukasz Luba).

- Update pm-graph to v5.13 (Todd Brandt).

- Add documentation for some recently introduced cpupower utility
options (Tor Vic).

- Make cpupower inform users where cpufreq-bench.conf should be located
when opening it fails (Peng Fan).

- Allow overriding cross-compiling env params in cpupower (Peng Fan).

- Add compile_commands.json to .gitignore in cpupower (John B. Wyatt
IV).

- Improve disable c_state block in cpupower bindings and add a test to
confirm that CPU state is disabled to it (John B. Wyatt IV).

- Add Chinese Simplified translation to cpupower (Kieran Moy).

- Add checks for xgettext and msgfmt to cpupower (Siddharth Menon).

Thanks!


---------------

Artem Bityutskiy (1):
intel_idle: add Granite Rapids Xeon D support

Chang S. Bae (1):
cpufreq: ACPI: Simplify MSR read on the boot CPU

Christian Loehle (2):
cpuidle: menu: Remove iowait influence
sched/cpufreq: Ensure sd is rebuilt for EAS check

Dhananjay Ugwekar (11):
cpufreq/amd-pstate: Rename MSR and shared memory specific functions
cpufreq/amd-pstate: Remove the redundant verify() function
cpufreq/amd-pstate: Set the initial min_freq to lowest_nonlinear_freq
cpufreq/amd-pstate: Call amd_pstate_register() in amd_pstate_init()
cpufreq/amd-pstate: Call amd_pstate_set_driver() in
amd_pstate_register_driver()
cpufreq/amd-pstate: Remove the switch case in amd_pstate_init()
cpufreq/amd-pstate: Remove the redundant amd_pstate_set_driver() call
cpufreq/amd-pstate: Rename functions that enable CPPC
cpufreq/amd-pstate: Do not attempt to clear MSR_AMD_CPPC_ENABLE
cpufreq/amd-pstate: Call cppc_set_epp_perf in the reenable function
cpufreq/amd-pstate: Align offline flow of shared memory and MSR
based systems

Gautham R. Shenoy (1):
amd-pstate: Set min_perf to nominal_perf for active mode performance gov

John B. Wyatt IV (3):
pm: cpupower: gitignore: Add compile_commands.json
pm: cpupower: bindings: Improve disable c_state block
pm: cpupower: bindings: Add test to confirm cpu state is disabled

Kieran Moy (1):
cpupower: Add Chinese Simplified translation

Lukasz Luba (1):
PM: EM: Add min/max available performance state limits

Marcin Juszkiewicz (1):
cpufreq: use proper units for frequency

Mario Limonciello (7):
cpufreq/amd-pstate: Fix non kerneldoc comment
cpufreq/amd-pstate: Don't update CPPC request in
amd_pstate_cpu_boost_update()
cpufreq/amd-pstate: Use amd_pstate_update_min_max_limit() for EPP limits
cpufreq/amd-pstate: Drop needless EPP initialization
cpufreq/amd-pstate-ut: Add fix for min freq unit test
cpufreq/amd-pstate: Push adjust_perf vfunc init into cpu_init
cpufreq/amd-pstate: Move registration after static function call update

Peng Fan (2):
pm: cpupower: bench: print config file path when open
cpufreq-bench.conf fails
pm: cpupower: Makefile: Allow overriding cross-compiling env params

Shen Lichuan (1):
cpuidle: Correct some typos in comments

Siddharth Menon (1):
cpupower: add checks for xgettext and msgfmt

Srinivas Pandruvada (1):
cpufreq: intel_pstate: Update Balance-performance EPP for Granite Rapids

Swapnil Sapkal (1):
amd-pstate: Switch to amd-pstate by default on some Server platforms

Todd Brandt (1):
pm-graph v5.13

Tor Vic (1):
tools/power/cpupower: Add documentation for some recently
introduced options

Uwe Kleine-König (1):
cpufreq: Switch back to struct platform_driver::remove()

---------------

drivers/cpufreq/acpi-cpufreq.c | 9 +-
drivers/cpufreq/amd-pstate-ut.c | 6 +-
drivers/cpufreq/amd-pstate.c | 229 ++---
drivers/cpufreq/brcmstb-avs-cpufreq.c | 2 +-
drivers/cpufreq/cpufreq-dt.c | 2 +-
drivers/cpufreq/cpufreq.c | 2 +-
drivers/cpufreq/davinci-cpufreq.c | 2 +-
drivers/cpufreq/imx-cpufreq-dt.c | 2 +-
drivers/cpufreq/imx6q-cpufreq.c | 2 +-
drivers/cpufreq/intel_pstate.c | 2 +
drivers/cpufreq/kirkwood-cpufreq.c | 2 +-
drivers/cpufreq/loongson3_cpufreq.c | 2 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +-
drivers/cpufreq/omap-cpufreq.c | 2 +-
drivers/cpufreq/pcc-cpufreq.c | 2 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 2 +-
drivers/cpufreq/qcom-cpufreq-nvmem.c | 2 +-
drivers/cpufreq/qoriq-cpufreq.c | 2 +-
drivers/cpufreq/raspberrypi-cpufreq.c | 2 +-
drivers/cpufreq/scpi-cpufreq.c | 2 +-
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 2 +-
drivers/cpufreq/tegra194-cpufreq.c | 2 +-
drivers/cpufreq/vexpress-spc-cpufreq.c | 2 +-
drivers/cpuidle/cpuidle-arm.c | 2 +-
drivers/cpuidle/cpuidle-qcom-spm.c | 2 +-
drivers/cpuidle/cpuidle.c | 2 +-
drivers/cpuidle/driver.c | 4 +-
drivers/cpuidle/governors/menu.c | 76 +-
drivers/idle/intel_idle.c | 48 ++
include/linux/energy_model.h | 29 +-
kernel/power/energy_model.c | 52 ++
kernel/sched/cpufreq_schedutil.c | 3 +-
tools/power/cpupower/.gitignore | 3 +
tools/power/cpupower/Makefile | 26 +-
tools/power/cpupower/bench/parse.c | 5 +-
.../bindings/python/test_raw_pylibcpupower.py | 28 +-
tools/power/cpupower/man/cpupower-set.1 | 38 +-
tools/power/cpupower/po/zh_CN.po | 942 +++++++++++++++++++++
tools/power/pm-graph/sleepgraph.8 | 3 +
tools/power/pm-graph/sleepgraph.py | 59 +-
41 files changed, 1330 insertions(+), 278 deletions(-)