[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0gK5=_HkTg-O7GOz-xUw27_484_AeoJHaz9vN0XRZvmqw@mail.gmail.com>
Date: Mon, 26 May 2025 22:12:06 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Linux PM <linux-pm@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Viresh Kumar <viresh.kumar@...aro.org>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>
Subject: [GIT PULL] Power management updates for v6.16-rc1
Hi Linus,
Please pull from the tag
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-6.16-rc1
with top-most commit 3e0c509fbdb106ba2d2fa13beafe58f4ba11e13d
Merge branch 'pm-tools'
on top of commit a5806cd506af5a7c19bcd596e4708b5c464bfd21
Linux 6.15-rc7
to receive power management updates for 6.16-rc1.
Once again, the changes are dominated by cpufreq updates, but this time
the majority of them are cpufreq core changes, mostly related to the
introduction of policy locking guards and __free() usage, and fixes
related to boost handling. Still, there is also a significant update
of the intel_pstate driver making it register an energy model when
running on a hybrid platform which is used for enabling energy-aware
scheduling (EAS) if the driver operates in the passive mode (and
schedutil is used as the cpufreq governor for all CPUs which is the
passive mode default). There are some amd-pstate driver updates too,
for a good measure, including the "Requested CPU Min frequency" BIOS
option support and new online/offline callbacks.
In the cpuidle space, the most significant change is the addition of
a C1 demotion on/off sysfs knob to intel_idle which should help some
users to configure their systems more precisely. There is also the
conversion of the PSCI cpuidle driver to a faux device one and there
are two small updates of cpuidle governors.
Device power management is also modified quite a bit, especially the
handling of devices with asynchronous suspend and resume enabled during
system transitions. They are now going to be handled more asynchronously
during suspend transitions and somewhat less aggressively during resume
transitions.
Apart from the above, the operating performance points (OPP) library
is now going to use mutex locking guards and scope-based cleanup
helpers and there is the usual bunch of assorted fixes and code
cleanups.
Specifics:
- Fix potential division-by-zero error in em_compute_costs() (Yaxiong
Tian).
- Fix typos in energy model documentation and example driver code (Moon
Hee Lee, Atul Kumar Pant).
- Rearrange the energy model management code and add a new function for
adjusting a CPU energy model after adjusting the capacity of the
given CPU to it (Rafael Wysocki).
- Refactor cpufreq_online(), add and use cpufreq policy locking guards,
use __free() in policy reference counting, and clean up core cpufreq
code on top of that (Rafael Wysocki).
- Fix boost handling on CPU suspend/resume and sysfs updates (Viresh
Kumar).
- Fix des_perf clamping with max_perf in amd_pstate_update() (Dhananjay
Ugwekar).
- Add offline, online and suspend callbacks to the amd-pstate driver,
rename and use the existing amd_pstate_epp callbacks in it (Dhananjay
Ugwekar).
- Add support for the "Requested CPU Min frequency" BIOS option to the
amd-pstate driver (Dhananjay Ugwekar).
- Reset amd-pstate driver mode after running selftests (Swapnil
Sapkal).
- Avoid shadowing ret in amd_pstate_ut_check_driver() (Nathan
Chancellor).
- Add helper for governor checks to the schedutil cpufreq governor and
move cpufreq-specific EAS checks to cpufreq (Rafael Wysocki).
- Populate the cpu_capacity sysfs entries from the intel_pstate driver
after registering asym capacity support (Ricardo Neri).
- Add support for enabling Energy-aware scheduling (EAS) to the
intel_pstate driver when operating in the passive mode on a hybrid
platform (Rafael Wysocki).
- Drop redundant cpus_read_lock() from store_local_boost() in the
cpufreq core (Seyediman Seyedarab).
- Replace sscanf() with kstrtouint() in the cpufreq code and use a
symbol instead of a raw number in it (Bowen Yu).
- Add support for autonomous CPU performance state selection to the
CPPC cpufreq driver (Lifeng Zheng).
- OPP: Add dev_pm_opp_set_level() (Praveen Talari).
- Introduce scope-based cleanup headers and mutex locking guards in OPP
core (Viresh Kumar).
- Switch OPP to use kmemdup_array() (Zhang Enpei).
- Optimize bucket assignment when next_timer_ns equals KTIME_MAX in the
menu cpuidle governor (Zhongqiu Han).
- Convert the cpuidle PSCI driver to a faux device one (Sudeep Holla).
- Add C1 demotion on/off sysfs knob to the intel_idle driver (Artem
Bityutskiy).
- Fix typos in two comments in the teo cpuidle governor (Atul Kumar
Pant).
- Fix denying of auto suspend in pm_suspend_timer_fn() (Charan Teja
Kalla).
- Move debug runtime PM attributes to runtime_attrs[] (Rafael Wysocki).
- Add new devm_ functions for enabling runtime PM and runtime PM
reference counting (Bence Csókás).
- Remove size arguments from strscpy() calls in the hibernation core
code (Thorsten Blum).
- Adjust the handling of devices with asynchronous suspend enabled
during system suspend and resume to start resuming them immediately
after resuming their parents and to start suspending such a device
immediately after suspending its first child (Rafael Wysocki).
- Adjust messages printed during tasks freezing to avoid using
pr_cont() (Andrew Sayers, Paul Menzel).
- Clean up unnecessary usage of !! in pm_print_times_init() (Zihuan
Zhang).
- Add missing wakeup source attribute relax_count to sysfs and
remove the space character at the end ofi the string produced by
pm_show_wakelocks() (Zijun Hu).
- Add configurable pm_test delay for hibernation (Zihuan Zhang).
- Disable asynchronous suspend in ucsi_ccg_probe() to prevent the
cypd4226 device on Tegra boards from suspending prematurely (Jon
Hunter).
- Unbreak printing PM debug messages during hibernation and clean up
some related code (Rafael Wysocki).
- Add a systemd service to run cpupower and change cpupower binding's
Makefile to use -lcpupower (John B. Wyatt IV, Francesco Poli).
Thanks!
---------------
Andrew Sayers (1):
PM: sleep: Use two lines for "Restarting..." / "done" messages
Artem Bityutskiy (3):
intel_idle: Add C1 demotion on/off sysfs knob
Documentation: admin-guide: pm: Document intel_idle C1 demotion
Documentation: ABI: testing: document the new cpuidle sysfs file
Atul Kumar Pant (2):
cpuidle: teo: Fix typos in two comments
PM: EM: Documentation: Fix typos in example driver code
Bence Csókás (1):
PM: runtime: Add new devm functions
Bowen Yu (2):
cpufreq: Replace magic number
cpufreq: Update sscanf() to kstrtouint()
Charan Teja Kalla (1):
PM: runtime: fix denying of auto suspend in pm_suspend_timer_fn()
Dhananjay Ugwekar (3):
cpufreq/amd-pstate: Move max_perf limiting in amd_pstate_update
cpufreq/amd-pstate: Add offline, online and suspend callbacks
for amd_pstate_driver
cpufreq/amd-pstate: Add support for the "Requested CPU Min
frequency" BIOS option
Francesco Poli (wintermute) (4):
cpupower: add a systemd service to run cpupower
cpupower: do not write DESTDIR to cpupower.service
cpupower: do not call systemctl at install time
cpupower: do not install files to /etc/default/
John B. Wyatt IV (1):
cpupower: change binding's makefile to use -lcpupower
Jon Hunter (1):
ucsi_ccg: Disable async suspend in ucsi_ccg_probe()
Lifeng Zheng (1):
cpufreq: CPPC: Add support for autonomous selection
Moon Hee Lee (1):
PM: EM: Documentation: fix typo in energy-model.rst
Nathan Chancellor (1):
cpufreq/amd-pstate: Avoid shadowing ret in amd_pstate_ut_check_driver()
Paul Menzel (1):
PM: freezer: Rewrite restarting tasks log to remove stray *done.*
Praveen Talari (1):
OPP: Add dev_pm_opp_set_level()
Rafael J. Wysocki (25):
cpufreq: Consolidate some code in cpufreq_online()
cpufreq: Split cpufreq_online()
cpufreq: Add and use cpufreq policy locking guards
cpufreq: intel_pstate: Rearrange max frequency updates handling code
cpufreq: Use locking guard and __free() in cpufreq_update_policy()
cpufreq: Drop cpufreq_cpu_acquire() and cpufreq_cpu_release()
cpufreq: Use __free() for policy reference counting cleanup
cpufreq: Introduce cpufreq_policy_refresh()
cpufreq: Pass policy pointer to ->update_limits()
cpufreq: Drop unused cpufreq_get_policy()
PM: sleep: Resume children after resuming the parent
PM: sleep: Suspend async parents after suspending children
PM: sleep: Make suspend of devices more asynchronous
cpufreq/sched: schedutil: Add helper for governor checks
cpufreq/sched: Move cpufreq-specific EAS checks to cpufreq
PM: sysfs: Move debug runtime PM attributes to runtime_attrs[]
PM: sleep: Print PM debug messages during hibernation
PM: sleep: Introduce pm_suspend_in_progress()
cpufreq: Drop policy locking from cpufreq_policy_is_good_for_eas()
PM: EM: Move CPU capacity check to em_adjust_new_capacity()
PM: EM: Introduce em_adjust_cpu_capacity()
cpufreq: intel_pstate: EAS support for hybrid platforms
cpufreq: intel_pstate: EAS: Increase cost for CPUs using L3 cache
cpufreq: intel_pstate: Document hybrid processor support
PM: sleep: Introduce pm_sleep_transition_in_progress()
Ricardo Neri (2):
arch_topology: Relocate cpu_scale to topology.[h|c]
cpufreq: intel_pstate: Populate the cpu_capacity sysfs entries
Seyediman Seyedarab (1):
cpufreq: drop redundant cpus_read_lock() from store_local_boost()
Sudeep Holla (2):
cpuidle: psci: Transition to the faux device interface
cpuidle: psci: Avoid initializing faux device if no DT idle
states are present
Swapnil Sapkal (1):
amd-pstate-ut: Reset amd-pstate driver mode after running selftests
Thorsten Blum (1):
PM: hibernate: Remove size arguments when calling strscpy()
Viresh Kumar (10):
OPP: Remove _get_opp_table_kref()
OPP: Return opp from dev_pm_opp_get()
OPP: Return opp_table from dev_pm_opp_get_opp_table_ref()
OPP: Use scope-based OF cleanup helpers
cpufreq: Don't unnecessarily call set_boost()
cpufreq: Introduce policy_set_boost()
cpufreq: Preserve policy's boost state after resume
cpufreq: Force sync policy boost with global boost on sysfs update
OPP: Define and use scope-based cleanup helpers
OPP: Use mutex locking guards
Yaxiong Tian (1):
PM: EM: Fix potential division-by-zero error in em_compute_costs()
Zhang Enpei (1):
OPP: switch to use kmemdup_array()
Zhongqiu Han (1):
cpuidle: menu: Optimize bucket assignment when next_timer_ns
equals KTIME_MAX
Zihuan Zhang (2):
PM: sleep: Remove unnecessary !!
PM: hibernate: add configurable delay for pm_test
Zijun Hu (2):
PM: wakeup: Add missing wakeup source attribute relax_count
PM: wakeup: Delete space in the end of string shown by pm_show_wakelocks()
---------------
Documentation/ABI/testing/sysfs-devices-system-cpu | 61 ++-
Documentation/admin-guide/kernel-parameters.txt | 7 +
Documentation/admin-guide/pm/intel_idle.rst | 21 +
Documentation/admin-guide/pm/intel_pstate.rst | 104 ++++-
Documentation/power/energy-model.rst | 8 +-
arch/x86/pci/fixup.c | 4 +-
drivers/base/arch_topology.c | 52 ---
drivers/base/power/main.c | 216 ++++++++--
drivers/base/power/runtime.c | 46 +-
drivers/base/power/sysfs.c | 15 +-
drivers/base/power/wakeup.c | 2 +-
drivers/base/power/wakeup_stats.c | 2 +
drivers/base/topology.c | 52 +++
drivers/cpufreq/amd-pstate-ut.c | 21 +-
drivers/cpufreq/amd-pstate.c | 120 ++++--
drivers/cpufreq/amd-pstate.h | 3 +
drivers/cpufreq/cppc_cpufreq.c | 109 +++++
drivers/cpufreq/cpufreq.c | 463 ++++++++++-----------
drivers/cpufreq/intel_pstate.c | 181 ++++++--
drivers/cpuidle/cpuidle-psci.c | 43 +-
drivers/cpuidle/governors/menu.c | 2 +-
drivers/cpuidle/governors/teo.c | 4 +-
drivers/gpu/drm/xe/xe_pm.c | 2 +-
drivers/idle/intel_idle.c | 102 +++++
drivers/opp/core.c | 428 +++++++------------
drivers/opp/cpu.c | 30 +-
drivers/opp/of.c | 205 ++++-----
drivers/opp/opp.h | 1 -
drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +
include/linux/arch_topology.h | 8 -
include/linux/cpufreq.h | 22 +-
include/linux/energy_model.h | 2 +
include/linux/pm_opp.h | 32 +-
include/linux/pm_runtime.h | 4 +
include/linux/suspend.h | 9 +
include/linux/topology.h | 9 +
kernel/power/energy_model.c | 72 ++--
kernel/power/hibernate.c | 23 +-
kernel/power/main.c | 8 +-
kernel/power/power.h | 4 +
kernel/power/process.c | 8 +-
kernel/power/wakelock.c | 3 +
kernel/sched/cpufreq_schedutil.c | 9 +-
kernel/sched/sched.h | 2 -
kernel/sched/topology.c | 25 +-
tools/power/cpupower/Makefile | 13 +
tools/power/cpupower/README | 28 ++
tools/power/cpupower/bindings/python/Makefile | 8 +-
tools/power/cpupower/bindings/python/README | 13 +-
tools/power/cpupower/cpupower-service.conf | 32 ++
tools/power/cpupower/cpupower.service.in | 16 +
tools/power/cpupower/cpupower.sh | 26 ++
tools/power/pm-graph/sleepgraph.py | 3 +-
53 files changed, 1723 insertions(+), 962 deletions(-)
Powered by blists - more mailing lists