linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/7] CPU cooling device new strategies
@ 2018-04-05 16:16 Daniel Lezcano
  2018-04-05 16:16 ` [PATCH v3 1/7] thermal/drivers/cpu_cooling: Fixup the header and copyright Daniel Lezcano
                   ` (6 more replies)
  0 siblings, 7 replies; 46+ messages in thread
From: Daniel Lezcano @ 2018-04-05 16:16 UTC (permalink / raw)
  To: viresh.kumar, edubezval
  Cc: kevin.wangtao, leo.yan, vincent.guittot, linux-kernel,
	javi.merino, rui.zhang, daniel.thompson, linux-pm

Changelog:
  V3:
    - Changed this description to be more clear with the numbers
    - Took into account the comments for the documentation
    - Switched to the smpboot threads to use the hotplug API
    - Removed usage of the waitq as the code relies on the smpboot
    - Removed the macro DEFAULT_IDLE_TIME_US and use directly TICK_USEC
    - Removed the list to store the cooling devices
    - Fixed static for the percpu cpuidle_cooling_tsk
    - Removed the BUG_ON in the cpuidle_cooling_runtime function and return 0
    - Used this_cpu_ptr instead of per_cpu_ptr(smp_processor_id())
    - Moved the function cpuidle_cooling_release closer to its caller
    - Fixed spaces instead of tab
    - Fixed function description log
    - Cancel timer on release
    - Fixed return value doc
    - Changed the initialization so the cpu numbering is no longer a problem
    - Removed useless atomic_set(0)
    - Moved the thermal cooling device creation after the cpuidle cooling device
    - Let the refcount to zero at init
    - Moved the initialization message at the end of the function
    - Changed the cpuidle_cooling_register to return void
    - Removed message in the cpuidle-arm driver if cpuidle_cooling_register fails

  V2:
     - Dropped the cpu combo cooling device
     - Added the acked-by tags
     - Replaced task array by a percpu structure
     - Fixed the copyright dates
     - Fixed the extra lines
     - Fixed the compilation macros to be reused
     - Fixed the list node removal
     - Massaged a couple of function names


The following series provides a new way to cool down a SoC by reducing
the dissipated power on the CPUs. Based on the initial work from Kevin
Wangtao, the series implements a CPU cooling device based on idle
injection, relying on the cpuidle framework.

The patchset is designed to have the current DT binding for the
cpufreq cooling device to be compatible with the new cooling devices.

Different cpu cooling devices can not co-exist on the system, the cpu
cooling device is enabled or not, and one cooling strategy is selected
(cpufreq or cpuidle). It is not possible to have all of them available
at the same time. However, the goal is to enable them all and be able
to switch from one to another at runtime but the thermal framework may
need some attention regarding the mitigation vs switching the cooling
device at runtime.

This series is divided into two parts.

The first part just provides trivial changes for the copyright and
removes an unused field in the cpu freq cooling device structure.

The second part provides the idle injection cooling device, allowing a SoC
without a cpufreq driver to use this cooling device as an alternative.

The cpuidle cooling device has been tested against the cpufreq cooling
in the same conditions: same board and a fan on top of the SoC. For
optimal trade-off between perf vs cooling effect the cpuidle cooling
device acts on one cluster only, for the bL SoC, the big cluster is
idle-mitigated. The targetted temperature is 75°C.

Command:
--------
 time ./dhrystone -t 8 -l 100

                   ------------------------------------------------------
                  |       hikey6220         |         hikey3660          |
                   ------------------------------------------------------
                  |   cpuidle  | cpufreq   ||   cpuidle   |   cpufreq    |
  -----------------------------------------------------------------------
 | DMIPS avg      |       1007 |     922   ||     2279    |       2250   |
  -----------------------------------------------------------------------
 | rtime (sec)    |      1.21  |    1.19   ||       49    |         51   |
  -----------------------------------------------------------------------
 | temp avg (mC)  |      75043 |   74862   ||    75640    |      75978   |
  -----------------------------------------------------------------------
 | temp stddev    |    309.357 |    6205   ||     3258    |       1950   |
  -----------------------------------------------------------------------
 | temp min (mC)  |      74235 |   71880   ||    66395    |      71315   |
  -----------------------------------------------------------------------
 | temp max (mC)  |      75805 |   77375   ||    84640    |      81360   |
  -----------------------------------------------------------------------

We can see the both cooling method have similar behavior in this
configuration.


Daniel Lezcano (7):
  thermal/drivers/cpu_cooling: Fixup the header and copyright
  thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX)
  thermal/drivers/cpu_cooling: Remove pointless field
  thermal/drivers/Kconfig: Convert the CPU cooling device to a choice
  thermal/drivers/cpu_cooling: Add idle cooling device documentation
  thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver
  cpuidle/drivers/cpuidle-arm: Register the cooling device

 Documentation/thermal/cpu-idle-cooling.txt | 166 ++++++++++
 drivers/cpuidle/cpuidle-arm.c              |   3 +
 drivers/thermal/Kconfig                    |  30 +-
 drivers/thermal/cpu_cooling.c              | 508 +++++++++++++++++++++++++++--
 include/linux/cpu_cooling.h                |  12 +-
 5 files changed, 692 insertions(+), 27 deletions(-)
 create mode 100644 Documentation/thermal/cpu-idle-cooling.txt

-- 
2.7.4

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

end of thread, other threads:[~2019-10-28 15:16 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-05 16:16 [PATCH v3 0/7] CPU cooling device new strategies Daniel Lezcano
2018-04-05 16:16 ` [PATCH v3 1/7] thermal/drivers/cpu_cooling: Fixup the header and copyright Daniel Lezcano
     [not found]   ` <20180411061514.GL7671@vireshk-i7>
2018-04-11  8:56     ` Daniel Lezcano
2018-04-05 16:16 ` [PATCH v3 2/7] thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX) Daniel Lezcano
2018-04-05 16:16 ` [PATCH v3 3/7] thermal/drivers/cpu_cooling: Remove pointless field Daniel Lezcano
2018-04-05 16:16 ` [PATCH v3 4/7] thermal/drivers/Kconfig: Convert the CPU cooling device to a choice Daniel Lezcano
     [not found]   ` <20180411061851.GM7671@vireshk-i7>
2018-04-11  8:58     ` Daniel Lezcano
2018-04-05 16:16 ` [PATCH v3 5/7] thermal/drivers/cpu_cooling: Add idle cooling device documentation Daniel Lezcano
2018-04-05 16:16 ` [PATCH v3 6/7] thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver Daniel Lezcano
2018-04-11  8:51   ` Viresh Kumar
2018-04-11  9:29     ` Daniel Lezcano
2018-04-13 11:23   ` Sudeep Holla
2018-04-13 11:47     ` Daniel Lezcano
2018-04-16  7:37       ` Viresh Kumar
2018-04-16  7:44         ` Daniel Lezcano
2018-04-16  9:34           ` Sudeep Holla
2018-04-16  9:37           ` Viresh Kumar
2018-04-16  9:45             ` Daniel Lezcano
2018-04-16  9:50               ` Viresh Kumar
2018-04-16 10:03                 ` Daniel Lezcano
2018-04-16 10:10                   ` Viresh Kumar
2018-04-16 12:10                     ` Daniel Lezcano
2018-04-16 12:30                       ` Lorenzo Pieralisi
2018-04-16 13:57                         ` Daniel Lezcano
2018-04-16 14:22                           ` Lorenzo Pieralisi
2018-04-17  7:17                             ` Daniel Lezcano
2018-04-17 10:24                               ` Lorenzo Pieralisi
2018-04-16 12:31                       ` Sudeep Holla
2018-04-16 12:49                         ` Daniel Lezcano
2018-04-16 13:03                           ` Sudeep Holla
2018-04-16 12:29                 ` Sudeep Holla
2018-04-13 11:38   ` Daniel Thompson
2018-04-13 11:46     ` Daniel Lezcano
2019-08-05  5:11   ` Martin Kepplinger
2019-08-05  6:53     ` Martin Kepplinger
2019-08-05  7:39       ` Daniel Lezcano
2019-08-05  7:42         ` Martin Kepplinger
2019-08-05  7:58           ` Daniel Lezcano
2019-10-25 11:22             ` Martin Kepplinger
2019-10-25 14:45               ` Daniel Lezcano
2019-10-26 18:23                 ` Martin Kepplinger
2019-10-28 15:16                   ` Daniel Lezcano
2019-08-05  7:37     ` Daniel Lezcano
2019-08-05  7:40       ` Martin Kepplinger
2018-04-05 16:16 ` [PATCH v3 7/7] cpuidle/drivers/cpuidle-arm: Register the cooling device Daniel Lezcano
2018-04-11  8:51   ` Viresh Kumar

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