lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <921c2f90-fb8b-4e70-9e3d-6e185fec03b6@linaro.org>
Date: Wed, 17 Jan 2024 17:57:30 +0100
From: Daniel Lezcano <daniel.lezcano@...aro.org>
To: "Rafael J. Wysocki" <rafael@...nel.org>,
 Manaf Meethalavalappu Pallikunhi <quic_manafm@...cinc.com>
Cc: Zhang Rui <rui.zhang@...el.com>, Lukasz Luba <lukasz.luba@....com>,
 linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] thermal/sysfs: Always enable hysteresis write support

On 10/01/2024 13:48, Rafael J. Wysocki wrote:
> Hi Manaf,
> 
> On Wed, Jan 10, 2024 at 9:17 AM Manaf Meethalavalappu Pallikunhi
> <quic_manafm@...cinc.com> wrote:
>>
>> Hi Rafael,
>>
>> On 1/9/2024 7:12 PM, Rafael J. Wysocki wrote:
>>
>> On Sat, Jan 6, 2024 at 8:16 PM Manaf Meethalavalappu Pallikunhi
>> <quic_manafm@...cinc.com> wrote:
>>
>> The commit 2e38a2a981b2("thermal/core: Add a generic
>> thermal_zone_set_trip() function") adds the support to update
>> trip hysteresis even if set_trip_hyst() operation is not defined.
>> But during hysteresis attribute creation, if this operation is
>> defined then only it enables hysteresis write access. It leads
>> to a case where hysteresis sysfs will be read only for a thermal
>> zone when its set_trip_hyst() operation is not defined.
>>
>> Which is by design.
>>
>> I think it is regression after recent re-work. If a sensor is registered with thermal framework via thermal_of,
>>
>> sensor driver doesn't need to know the trip configuration and nothing to do with set_trip_hyst() in driver.
>>
>> Without this change, if a sensor needs to be monitored from userspace(trip/hysteresis),
> 
> What exactly do you mean by "monitored" here?
> 
>> it is enforcing sensor driver to add  dummy set_trip_hyst() operation. Correct me otherwise
> 
> With the current design, whether or not trip properties can be updated
> by user space is a thermal zone property expressed by the presence of
> the set_trip_* operations, so yes, whoever registers the thermal zone
> needs to provide those so that user space can update the trip
> properties.
> 
>> For some thermal zone types (eg. acpi), updating trip hysteresis via
>> sysfs might lead to incorrect behavior.
>>
>> To address this issue, is it okay to  guard  hysteresis write permission under CONFIG_THERMAL_WRITABLE_TRIPS defconfig ?
> 
> Not really, because it would affect all of the thermal zones then.

It seems like there is an inconsistency here with the writable trip 
points and the writable hysteresis [1].

My understanding is it does not make sense to have the hysteresis 
writable even if the driver has a hysteresis dedicated ops. The code 
allowing to change the hysteresis was done regardless the consistency 
with the trip temperature change and writable trip points kernel option IMO.

It would make sense to have:

if enabled(CONFIG_WRITABLE_TRIP_POINT)
  -> trip_temp RW
  -> trip_hyst RW
else
  -> trip temp RO
  -> trip hyst RO
fi

But if the interface exists since a long time, we may not want to change 
it, right ?

However, we can take the opportunity to introduce a new 'user' trip 
point type in order to let the userspace to have dedicated trip point 
and receive temperature notifications [2]

> TBH, the exact scenario in which user space needs to update trip
> hysteresis is not particularly clear to me, so can you provide some
> more details, please?

IIUC changing the hysteresis value is useful because the temperature 
speed will vary given the thermal contribution of the components 
surrounding the thermal zone, that includes the ambient temperature.

However, that may apply to slow speed temperature sensor like the skin 
temperature sensor where we may to do small hysteresis variation.

The places managed by the kernel have an insane temperature transition 
speed. The userspace is unable to follow this speed and manage the 
hysteresis on the fly.

So that brings us to userspace trip point handling again.

   -- Daniel

[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-class-thermal?h=v6.7#n66

[2] https://lpc.events/event/17/contributions/1423/contribution.pdf

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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ