Re: [RFC PATCH] thermal/core: Fix trip point crossing events ordering

From: Daniel Lezcano
Date: Wed Mar 06 2024 - 10:56:48 EST


On 06/03/2024 16:41, Rafael J. Wysocki wrote:
On Wed, Mar 6, 2024 at 2:16 PM Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote:

On 06/03/2024 13:53, Rafael J. Wysocki wrote:
On Wed, Mar 6, 2024 at 1:43 PM Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote:

On 06/03/2024 13:02, Rafael J. Wysocki wrote:

[ ... ]

+#define for_each_trip_reverse(__tz, __trip) \
+ for (__trip = &__tz->trips[__tz->num_trips - 1]; __trip >= __tz->trips ; __trip--)
+
void __thermal_zone_set_trips(struct thermal_zone_device *tz);
int thermal_zone_trip_id(const struct thermal_zone_device *tz,
const struct thermal_trip *trip);
--

Generally speaking, this is a matter of getting alignment on the
expectations between the kernel and user space.

It looks like user space expects to get the notifications in the order
of either growing or falling temperatures, depending on the direction
of the temperature change. Ordering the trips in the kernel is not
practical, but the notifications can be ordered in principle. Is this
what you'd like to do?

Yes

Or can user space be bothered with recognizing that it may get the
notifications for different trips out of order?

IMO it is a bad information if the trip points events are coming
unordered. The temperature signal is a time related measurements, the
userspace should receive thermal information from this signal in the
right order. It sounds strange to track the temperature signal in the
kernel, then scramble the information, pass it to the userspace and
except it to apply some kind of logic to unscramble it.

So the notifications can be ordered before sending them out, as long
as they are produced by a single __thermal_zone_device_update() call.

I guess you also would like the thermal_debug_tz_trip_up/down() calls
to be ordered, wouldn't you?

Right

I have an idea how to do this, but it is based on a couple of patches
that I've been working on in the meantime.

Let me post these patches first and then I'll send a prototype patch
addressing this on top of them.

That is awesome, thanks !

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