devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: rafael@kernel.org, linux-pm@vger.kernel.org,
	Zhang Rui <rui.zhang@intel.com>,
	Lukasz Luba <lukasz.luba@arm.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] thermal/core: Introduce user trip points
Date: Mon, 1 Jul 2024 10:26:00 -0600	[thread overview]
Message-ID: <20240701162600.GA4119789-robh@kernel.org> (raw)
In-Reply-To: <20240627085451.3813989-1-daniel.lezcano@linaro.org>

On Thu, Jun 27, 2024 at 10:54:50AM +0200, Daniel Lezcano wrote:
> Currently the thermal framework has 4 trip point types:
> 
> - active : basically for fans (or anything requiring energy to cool
>   down)
> 
> - passive : a performance limiter
> 
> - hot : for a last action before reaching critical
> 
> - critical : a without return threshold leading to a system shutdown
> 
> A thermal zone monitors the temperature regarding these trip
> points. The old way to do that is actively polling the temperature
> which is very bad for embedded systems, especially mobile and it is
> even worse today as we can have more than fifty thermal zones. The
> modern way is to rely on the driver to send an interrupt when the trip
> points are crossed, so the system can sleep while the temperature
> monitoring is offloaded to a dedicated hardware.
> 
> However, the thermal aspect is also managed from userspace to protect
> the user, especially tracking down the skin temperature sensor. The
> logic is more complex than what we found in the kernel because it
> needs multiple sources indicating the thermal situation of the entire
> system.
> 
> For this reason it needs to setup trip points at different levels in
> order to get informed about what is going on with some thermal zones
> when running some specific application.
> 
> For instance, the skin temperature must be limited to 43°C on a long
> run but can go to 48°C for 10 minutes, or 60°C for 1 minute.
> 
> The thermal engine must then rely on trip points to monitor those
> temperatures. Unfortunately, today there is only 'active' and
> 'passive' trip points which has a specific meaning for the kernel, not
> the userspace. That leads to hacks in different platforms for mobile
> and embedded systems where 'active' trip points are used to send
> notification to the userspace. This is obviously not right because
> these trip are handled by the kernel.
> 
> This patch introduces the 'user' trip point type where its semantic is
> simple: do nothing at the kernel level, just send a notification to
> the user space.

Sounds like OS behavior/policy though I guess the existing ones kind are 
too. Maybe we should have defined *what* action to take and then the OS 
could decide whether what actions to handle vs. pass it up a level.

Why can't userspace just ask to be notified at a trip point it 
defines?

If we keep this in DT, perhaps 'notice' would be a better name that 
doesn't encode the OS architecture details.


BTW, can we decide what to do about 'trips' node being required or not? 
That's nearly the only DT warning left for some platforms.

> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  .../devicetree/bindings/thermal/thermal-zones.yaml        | 1 +

Please make bindings a separate patch.

>  drivers/thermal/thermal_core.c                            | 8 ++++++++
>  drivers/thermal/thermal_of.c                              | 1 +
>  drivers/thermal/thermal_trace.h                           | 4 +++-
>  drivers/thermal/thermal_trip.c                            | 1 +
>  include/uapi/linux/thermal.h                              | 1 +
>  6 files changed, 15 insertions(+), 1 deletion(-)


  parent reply	other threads:[~2024-07-01 16:26 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-27  8:54 [PATCH] thermal/core: Introduce user trip points Daniel Lezcano
2024-06-28 13:56 ` Rafael J. Wysocki
2024-07-01 13:17   ` Daniel Lezcano
2024-07-01 13:36     ` Rafael J. Wysocki
2024-07-01 15:13   ` Daniel Lezcano
2024-07-01 15:47     ` Rafael J. Wysocki
2024-07-01 15:50       ` Daniel Lezcano
2024-07-01 16:26 ` Rob Herring [this message]
2024-07-02  9:29   ` Daniel Lezcano
2024-07-02 10:22     ` Rafael J. Wysocki
2024-07-02 10:56       ` Daniel Lezcano
2024-07-02 11:03         ` Rafael J. Wysocki
2024-07-02 11:17           ` Rafael J. Wysocki
2024-07-02 16:31           ` Daniel Lezcano
2024-07-02 17:15             ` Rafael J. Wysocki
2024-07-02 22:49               ` Daniel Lezcano
2024-07-03 11:20                 ` Rafael J. Wysocki

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=20240701162600.GA4119789-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lukasz.luba@arm.com \
    --cc=rafael@kernel.org \
    --cc=rui.zhang@intel.com \
    /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).