Skip to content

Commit 355ba37

Browse files
committed
Merge tag 'pm-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management updates from Rafael Wysocki: "These rework the system-wide PM driver flags, make runtime switching of cpuidle governors easier, improve the user space hibernation interface code, add intel-speed-select interface documentation, add more debug messages to the ACPI code handling suspend to idle, update the cpufreq core and drivers, fix a minor issue in the cpuidle core and update two cpuidle drivers, improve the PM-runtime framework, update the Intel RAPL power capping driver, update devfreq core and drivers, and clean up the cpupower utility. Specifics: - Rework the system-wide PM driver flags to make them easier to understand and use and update their documentation (Rafael Wysocki, Alan Stern). - Allow cpuidle governors to be switched at run time regardless of the kernel configuration and update the related documentation accordingly (Hanjun Guo). - Improve the resume device handling in the user space hibernarion interface code (Domenico Andreoli). - Document the intel-speed-select sysfs interface (Srinivas Pandruvada). - Make the ACPI code handing suspend to idle print more debug messages to help diagnose issues with it (Rafael Wysocki). - Fix a helper routine in the cpufreq core and correct a typo in the struct cpufreq_driver kerneldoc comment (Rafael Wysocki, Wang Wenhu). - Update cpufreq drivers: - Make the intel_pstate driver start in the passive mode by default on systems without HWP (Rafael Wysocki). - Add i.MX7ULP support to the imx-cpufreq-dt driver and add i.MX7ULP to the cpufreq-dt-platdev blacklist (Peng Fan). - Convert the qoriq cpufreq driver to a platform one, make the platform code create a suitable device object for it and add platform dependencies to it (Mian Yousaf Kaukab, Geert Uytterhoeven). - Fix wrong compatible binding in the qcom driver (Ansuel Smith). - Build the omap driver by default for ARCH_OMAP2PLUS (Anders Roxell). - Add r8a7742 SoC support to the dt cpufreq driver (Lad Prabhakar). - Update cpuidle core and drivers: - Fix three reference count leaks in error code paths in the cpuidle core (Qiushi Wu). - Convert Qualcomm SPM to a generic cpuidle driver (Stephan Gerhold). - Fix up the execution order when entering a domain idle state in the PSCI driver (Ulf Hansson). - Fix a reference counting issue related to clock management and clean up two oddities in the PM-runtime framework (Rafael Wysocki, Andy Shevchenko). - Add ElkhartLake support to the Intel RAPL power capping driver and remove an unused local MSR definition from it (Jacob Pan, Sumeet Pawnikar). - Update devfreq core and drivers: - Replace strncpy() with strscpy() in the devfreq core and use lockdep asserts instead of manual checks for a locked mutex in it (Dmitry Osipenko, Krzysztof Kozlowski). - Add a generic imx bus scaling driver and make it register an interconnect device (Leonard Crestez, Gustavo A. R. Silva). - Make the cpufreq notifier in the tegra30 driver take boosting into account and delete an unuseful error message from that driver (Dmitry Osipenko, Markus Elfring). - Remove unneeded semicolon from the cpupower code (Zou Wei)" * tag 'pm-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (51 commits) cpuidle: Fix three reference count leaks PM: runtime: Replace pm_runtime_callbacks_present() PM / devfreq: Use lockdep asserts instead of manual checks for locked mutex PM / devfreq: imx-bus: Fix inconsistent IS_ERR and PTR_ERR PM / devfreq: Replace strncpy with strscpy PM / devfreq: imx: Register interconnect device PM / devfreq: Add generic imx bus scaling driver PM / devfreq: tegra30: Delete an error message in tegra_devfreq_probe() PM / devfreq: tegra30: Make CPUFreq notifier to take into account boosting PM: hibernate: Restrict writes to the resume device PM: runtime: clk: Fix clk_pm_runtime_get() error path cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver ACPI: EC: PM: s2idle: Extend GPE dispatching debug message ACPI: PM: s2idle: Print type of wakeup debug messages powercap: RAPL: remove unused local MSR define PM: runtime: Make clear what we do when conditions are wrong in rpm_suspend() Documentation: admin-guide: pm: Document intel-speed-select PM: hibernate: Split off snapshot dev option PM: hibernate: Incorporate concurrency handling Documentation: ABI: make current_governer_ro as a candidate for removal ...
2 parents a5a82e0 + a34024d commit 355ba37

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1831
-728
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
What: /sys/devices/system/cpu/cpuidle/current_governor_ro
2+
Date: April, 2020
3+
4+
Description:
5+
current_governor_ro shows current using cpuidle governor, but read only.
6+
with the update that cpuidle governor can be changed at runtime in default,
7+
both current_governor and current_governor_ro co-exist under
8+
/sys/devices/system/cpu/cpuidle/ file, it's duplicate so make
9+
current_governor_ro obselete.

Documentation/ABI/testing/sysfs-devices-system-cpu

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,10 @@ Description: CPU topology files that describe a logical CPU's relationship
106106
See Documentation/admin-guide/cputopology.rst for more information.
107107

108108

109-
What: /sys/devices/system/cpu/cpuidle/current_driver
110-
/sys/devices/system/cpu/cpuidle/current_governer_ro
111-
/sys/devices/system/cpu/cpuidle/available_governors
109+
What: /sys/devices/system/cpu/cpuidle/available_governors
110+
/sys/devices/system/cpu/cpuidle/current_driver
112111
/sys/devices/system/cpu/cpuidle/current_governor
112+
/sys/devices/system/cpu/cpuidle/current_governer_ro
113113
Date: September 2007
114114
Contact: Linux kernel mailing list <[email protected]>
115115
Description: Discover cpuidle policy and mechanism
@@ -119,24 +119,18 @@ Description: Discover cpuidle policy and mechanism
119119
consumption during idle.
120120

121121
Idle policy (governor) is differentiated from idle mechanism
122-
(driver)
123-
124-
current_driver: (RO) displays current idle mechanism
125-
126-
current_governor_ro: (RO) displays current idle policy
127-
128-
With the cpuidle_sysfs_switch boot option enabled (meant for
129-
developer testing), the following three attributes are visible
130-
instead:
131-
132-
current_driver: same as described above
122+
(driver).
133123

134124
available_governors: (RO) displays a space separated list of
135-
available governors
125+
available governors.
126+
127+
current_driver: (RO) displays current idle mechanism.
136128

137129
current_governor: (RW) displays current idle policy. Users can
138130
switch the governor at runtime by writing to this file.
139131

132+
current_governor_ro: (RO) displays current idle policy.
133+
140134
See Documentation/admin-guide/pm/cpuidle.rst and
141135
Documentation/driver-api/pm/cpuidle.rst for more information.
142136

Documentation/admin-guide/pm/cpuidle.rst

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -159,17 +159,15 @@ governor uses that information depends on what algorithm is implemented by it
159159
and that is the primary reason for having more than one governor in the
160160
``CPUIdle`` subsystem.
161161

162-
There are three ``CPUIdle`` governors available, ``menu``, `TEO <teo-gov_>`_
163-
and ``ladder``. Which of them is used by default depends on the configuration
164-
of the kernel and in particular on whether or not the scheduler tick can be
165-
`stopped by the idle loop <idle-cpus-and-tick_>`_. It is possible to change the
166-
governor at run time if the ``cpuidle_sysfs_switch`` command line parameter has
167-
been passed to the kernel, but that is not safe in general, so it should not be
168-
done on production systems (that may change in the future, though). The name of
169-
the ``CPUIdle`` governor currently used by the kernel can be read from the
170-
:file:`current_governor_ro` (or :file:`current_governor` if
171-
``cpuidle_sysfs_switch`` is present in the kernel command line) file under
172-
:file:`/sys/devices/system/cpu/cpuidle/` in ``sysfs``.
162+
There are four ``CPUIdle`` governors available, ``menu``, `TEO <teo-gov_>`_,
163+
``ladder`` and ``haltpoll``. Which of them is used by default depends on the
164+
configuration of the kernel and in particular on whether or not the scheduler
165+
tick can be `stopped by the idle loop <idle-cpus-and-tick_>`_. Available
166+
governors can be read from the :file:`available_governors`, and the governor
167+
can be changed at runtime. The name of the ``CPUIdle`` governor currently
168+
used by the kernel can be read from the :file:`current_governor_ro` or
169+
:file:`current_governor` file under :file:`/sys/devices/system/cpu/cpuidle/`
170+
in ``sysfs``.
173171

174172
Which ``CPUIdle`` driver is used, on the other hand, usually depends on the
175173
platform the kernel is running on, but there are platforms with more than one

0 commit comments

Comments
 (0)