mbox series

[0/8] CPU cooling device new strategies

Message ID 1516721671-16360-1-git-send-email-daniel.lezcano@linaro.org
Headers show
Series CPU cooling device new strategies | expand

Message

Daniel Lezcano Jan. 23, 2018, 3:34 p.m. UTC
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 and a combo CPU cooling
device combining the cooling effect of the cpufreq and the cpuidle
cooling device with the objective of getting the advantages of both.

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, cpuidle or both with the combo). It is not possible to have
all of them available at the same time.

This series is divided into three 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 third part provides the combo idle injection and frequency cooling
device.

The preliminary benchmarks show the following changes:

On the hikey6220, dhrystone shows a throughtput increase of 40% for an increase
of the latency of 16% while sysbench shows a latency increase of 5%.

On a hikey3660, the combo cooling device shows an improvement in term of
throughput for the little cluster of 5% and a decrease of 5% on the big
cluster. However, the hikey3660 support in mainline is still experimental and
there is no guarantee the numberis provided in the DT are accurate enough.

Daniel Lezcano (9):
  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: Introduce the cpu idle cooling driver
  thermal/drivers/cpu_cooling: Add idle cooling device documentation
  cpuidle/drivers/cpuidle-arm: Register the cooling device
  thermal/drivers/cpu_cooling: Add the combo cpu cooling device

 Documentation/thermal/cpu-idle-cooling.txt | 165 ++++++
 drivers/cpuidle/cpuidle-arm.c              |   5 +
 drivers/thermal/Kconfig                    |  37 +-
 drivers/thermal/cpu_cooling.c              | 869 ++++++++++++++++++++++++++++-
 include/linux/cpu_cooling.h                |  15 +-
 6 files changed, 1068 insertions(+), 31 deletions(-)
 create mode 100644 Documentation/thermal/cpu-idle-cooling.txt

-- 
2.7.4

Comments

Daniel Lezcano Feb. 8, 2018, 2:07 p.m. UTC | #1
On 08/02/2018 15:05, Philippe Ombredanne wrote:
> Daniel,


[ ... ]

> Sorry for the late reply!

> Thank you.

> Acked-by: Philippe Ombredanne <pombredanne@nexB.com>


No worries.

Thanks for the ack.

  -- Daniel


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog