Re: [PATCH v5 0/4] powercap/dtpm: Add the DTPM framework

From: Daniel Lezcano
Date: Fri Dec 11 2020 - 05:41:03 EST



Hi Rafael,

I believe I took into account all the comments, do you think it is
possible to merge this series ?



On 08/12/2020 17:41, Daniel Lezcano wrote:
> The density of components greatly increased the last decade bringing a
> numerous number of heating sources which are monitored by more than 20
> sensors on recent SoC. The skin temperature, which is the case
> temperature of the device, must stay below approximately 45°C in order
> to comply with the legal requirements.
>
> The skin temperature is managed as a whole by an user space daemon,
> which is catching the current application profile, to allocate a power
> budget to the different components where the resulting heating effect
> will comply with the skin temperature constraint.
>
> This technique is called the Dynamic Thermal Power Management.
>
> The Linux kernel does not provide any unified interface to act on the
> power of the different devices. Currently, the thermal framework is
> changed to export artificially the performance states of different
> devices via the cooling device software component with opaque values.
> This change is done regardless of the in-kernel logic to mitigate the
> temperature. The user space daemon uses all the available knobs to act
> on the power limit and those differ from one platform to another.
>
> This series provides a Dynamic Thermal Power Management framework to
> provide an unified way to act on the power of the devices.
>
> Changelog:
> V5:
> - Fixed typos in documentation
> - Added a dtpm NULL pointer check in the dtpm_register() function
> V4:
> - Changed fine grain spinlocks by global tree mutex lock
> - Dropped tested by tag from Lukasz
> - Fixed rollback routine in dtpm_cpu
> - Checked freq_qos_request_active() when releasing the dtpm_cpu node
> V3:
> - Fixed power-limit computation in addition with the hotplugging
> - Improved the encapsulation
> - Added specific ops for the leaves of the tree
> - Simplified API and self-encapsulation
> - Fixed documentation and generated it to check the content
> V2:
> - Fixed indentation
> - Fixed typos in comments
> - Fixed missing kfree for dtpm_cpu
> - Capitalize letters in the Kconfig description
> - Reduced name description
> - Stringified section name
> - Added more debug traces in the code
> - Removed duplicate initialization in the dtpm cpu
>
> Daniel Lezcano (4):
> units: Add Watt units
> Documentation/powercap/dtpm: Add documentation for dtpm
> powercap/drivers/dtpm: Add API for dynamic thermal power management
> powercap/drivers/dtpm: Add CPU energy model based support
>
> Documentation/power/index.rst | 1 +
> Documentation/power/powercap/dtpm.rst | 212 ++++++++++++
> drivers/powercap/Kconfig | 13 +
> drivers/powercap/Makefile | 2 +
> drivers/powercap/dtpm.c | 473 ++++++++++++++++++++++++++
> drivers/powercap/dtpm_cpu.c | 257 ++++++++++++++
> include/asm-generic/vmlinux.lds.h | 11 +
> include/linux/cpuhotplug.h | 1 +
> include/linux/dtpm.h | 77 +++++
> include/linux/units.h | 4 +
> 10 files changed, 1051 insertions(+)
> create mode 100644 Documentation/power/powercap/dtpm.rst
> create mode 100644 drivers/powercap/dtpm.c
> create mode 100644 drivers/powercap/dtpm_cpu.c
> create mode 100644 include/linux/dtpm.h
>
> Cc: Thara Gopinath <thara.gopinath@xxxxxxxxxx>
> Cc: Lina Iyer <ilina@xxxxxxxxxxxxxx>
> Cc: Ram Chandrasekar <rkumbako@xxxxxxxxxxxxxx>
> Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
> Cc: Lukasz Luba <lukasz.luba@xxxxxxx>
>
> --
> 2.17.1
>


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