Commit f1ecbf79 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-cpuidle'

* pm-cpuidle:
  cpuidle: Fix three reference count leaks
  cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver
  Documentation: ABI: make current_governer_ro as a candidate for removal
  Documentation: cpuidle: update the document
  cpuidle: sysfs: Remove sysfs_switch and switch attributes
  cpuidle: Make cpuidle governor switchable to be the default behaviour
  cpuidle: sysfs: Accept governor name with 15 characters
  cpuidle: sysfs: Fix the overlap for showing available governors
  cpuidle: psci: Fixup execution order when entering a domain idle state
  cpuidle: sysfs: Minor coding style corrections
  cpuidle: sysfs: Remove the unused define_one_r(o/w) macros
parents be6018a4 c343bf1b
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
What:		/sys/devices/system/cpu/cpuidle/current_governor_ro
Date:		April, 2020
Contact:	linux-pm@vger.kernel.org
Description:
	current_governor_ro shows current using cpuidle governor, but read only.
	with the update that cpuidle governor can be changed at runtime in default,
	both current_governor and current_governor_ro co-exist under
	/sys/devices/system/cpu/cpuidle/ file, it's duplicate so make
	current_governor_ro obselete.
+9 −15
Original line number Diff line number Diff line
@@ -106,10 +106,10 @@ Description: CPU topology files that describe a logical CPU's relationship
		See Documentation/admin-guide/cputopology.rst for more information.


What:		/sys/devices/system/cpu/cpuidle/current_driver
		/sys/devices/system/cpu/cpuidle/current_governer_ro
		/sys/devices/system/cpu/cpuidle/available_governors
What:		/sys/devices/system/cpu/cpuidle/available_governors
		/sys/devices/system/cpu/cpuidle/current_driver
		/sys/devices/system/cpu/cpuidle/current_governor
		/sys/devices/system/cpu/cpuidle/current_governer_ro
Date:		September 2007
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Discover cpuidle policy and mechanism
@@ -119,24 +119,18 @@ Description: Discover cpuidle policy and mechanism
		consumption during idle.

		Idle policy (governor) is differentiated from idle mechanism
		(driver)

		current_driver: (RO) displays current idle mechanism

		current_governor_ro: (RO) displays current idle policy

		With the cpuidle_sysfs_switch boot option enabled (meant for
		developer testing), the following three attributes are visible
		instead:

		current_driver: same as described above
		(driver).

		available_governors: (RO) displays a space separated list of
		available governors
		available governors.

		current_driver: (RO) displays current idle mechanism.

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

		current_governor_ro: (RO) displays current idle policy.

		See Documentation/admin-guide/pm/cpuidle.rst and
		Documentation/driver-api/pm/cpuidle.rst for more information.

+9 −11
Original line number Diff line number Diff line
@@ -159,17 +159,15 @@ governor uses that information depends on what algorithm is implemented by it
and that is the primary reason for having more than one governor in the
``CPUIdle`` subsystem.

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

Which ``CPUIdle`` driver is used, on the other hand, usually depends on the
platform the kernel is running on, but there are platforms with more than one
+2 −3
Original line number Diff line number Diff line
@@ -68,9 +68,8 @@ only one in the list (that is, the list was empty before) or the value of its
governor currently in use, or the name of the new governor was passed to the
kernel as the value of the ``cpuidle.governor=`` command line parameter, the new
governor will be used from that point on (there can be only one ``CPUIdle``
governor in use at a time).  Also, if ``cpuidle_sysfs_switch`` is passed to the
kernel in the command line, user space can choose the ``CPUIdle`` governor to
use at run time via ``sysfs``.
governor in use at a time).  Also, user space can choose the ``CPUIdle``
governor to use at run time via ``sysfs``.

Once registered, ``CPUIdle`` governors cannot be unregistered, so it is not
practical to put them into loadable kernel modules.
+1 −0
Original line number Diff line number Diff line
@@ -2225,6 +2225,7 @@ F: drivers/*/qcom*
F:	drivers/*/qcom/
F:	drivers/bluetooth/btqcomsmd.c
F:	drivers/clocksource/timer-qcom.c
F:	drivers/cpuidle/cpuidle-qcom-spm.c
F:	drivers/extcon/extcon-qcom*
F:	drivers/i2c/busses/i2c-qcom-geni.c
F:	drivers/i2c/busses/i2c-qup.c
Loading