From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: rjw@rjwysocki.net
Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Thara Gopinath <thara.gopinath@linaro.org>,
Lina Iyer <ilina@codeaurora.org>,
Ram Chandrasekar <rkumbako@codeaurora.org>,
Zhang Rui <rui.zhang@intel.com>,
Lukasz Luba <lukasz.luba@arm.com>
Subject: [PATCH v5 0/4] powercap/dtpm: Add the DTPM framework
Date: Tue, 8 Dec 2020 17:41:41 +0100 [thread overview]
Message-ID: <20201208164145.19493-1-daniel.lezcano@linaro.org> (raw)
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@linaro.org>
Cc: Lina Iyer <ilina@codeaurora.org>
Cc: Ram Chandrasekar <rkumbako@codeaurora.org>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Lukasz Luba <lukasz.luba@arm.com>
--
2.17.1
next reply other threads:[~2020-12-08 16:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-08 16:41 Daniel Lezcano [this message]
2020-12-08 16:41 ` [PATCH v5 1/4] units: Add Watt units Daniel Lezcano
2020-12-08 16:41 ` [PATCH v5 2/4] Documentation/powercap/dtpm: Add documentation for dtpm Daniel Lezcano
2020-12-08 16:41 ` [PATCH v5 3/4] powercap/drivers/dtpm: Add API for dynamic thermal power management Daniel Lezcano
2020-12-08 16:41 ` [PATCH v5 4/4] powercap/drivers/dtpm: Add CPU energy model based support Daniel Lezcano
2020-12-11 10:39 ` [PATCH v5 0/4] powercap/dtpm: Add the DTPM framework Daniel Lezcano
2020-12-11 19:15 ` Rafael J. Wysocki
2020-12-22 18:52 ` Rafael J. Wysocki
2020-12-23 12:34 ` Daniel Lezcano
2020-12-24 18:46 ` Pavel Machek
2020-12-25 11:54 ` Daniel Lezcano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201208164145.19493-1-daniel.lezcano@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=ilina@codeaurora.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=rjw@rjwysocki.net \
--cc=rkumbako@codeaurora.org \
--cc=rui.zhang@intel.com \
--cc=thara.gopinath@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).