Re: [PATCH v1 1/6] thermal: sysfs: Trigger zone temperature updates on sysfs reads

From: Daniel Lezcano
Date: Thu May 16 2024 - 05:46:13 EST



Hi Rafael,

On 16/05/2024 11:04, Rafael J. Wysocki wrote:
Hi Lukasz,

On Mon, May 13, 2024 at 9:11 AM Lukasz Luba <lukasz.luba@xxxxxxx> wrote:

Hi Rafael,

On 5/10/24 15:13, Rafael J. Wysocki wrote:
From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Reading the zone temperature via sysfs causes the driver callback to
be invoked, but it does not cause the thermal zone object to be updated.

This is problematic if the zone temperature read via sysfs differs from
the temperature value stored in the thermal zone object as it may cause
the kernel and user space to act against each other in some cases.

For this reason, make temp_show() trigger a zone temperature update if
the temperature returned by thermal_zone_get_temp() is different from
the temperature value stored in the thermal zone object.


The hwmon system is doing something similar and I'm not sure we want to mimic the same behavior.

Just to summarize:

1. There is a polling delay set

This polling delay gives the sampling rate the thermal zone is monitored. The temperature is updated at each 'delay' tick

2. There is no polling delay set

The system relies on the interrupts to tell when a temperature reaches a threshold.


On the other side, if the governor is in-kernel, then we should not read the temperature of the thermal zones because it is the job of the kernel to do that.

Actually we can assume the temperature information exported to the userspace is a courtesy of the kernel when this one is managing the thermal zone.

If there is no governor associated to the thermal zone because there is no cooling device associated to the defined trip points, then we can assume it is up to the userspace to monitor the thermal zone.

Furthermore, the hwmon gives the temperature information with the caching and because of that it is not possible for a thermal daemon to correctly handle a thermal zone.

That said, I would say we don't want the userspace to influence the thermal zone monitoring in any manner.

From my POV, we should keep the code as it is.

The description of the change says "it may cause the kernel and user space to act against each other in some cases". Is it possible to give the cases when that can happen ?




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