Re: [PATCH v4 1/1] asus-wmi: Add support for custom fan curves

From: Hans de Goede
Date: Tue Aug 24 2021 - 11:45:24 EST


Hi,

On 8/24/21 2:33 PM, Bastien Nocera wrote:
> On Mon, 2021-08-23 at 13:45 +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 8/23/21 1:26 PM, Luke Jones wrote:
>>>
>>>
>>> On Mon, Aug 23 2021 at 12:28:21 +0200, Bastien Nocera
>>> <hadess@xxxxxxxxxx> wrote:
>>>> On Sat, 2021-08-21 at 09:30 +1200, Luke Jones wrote:
>>>>>
>>>>>
>>>>>  On Fri, Aug 20 2021 at 13:39:02 +0200, Bastien Nocera
>>>>>  <hadess@xxxxxxxxxx> wrote:
>>>>>  > On Fri, 2021-08-20 at 23:00 +1200, Luke Jones wrote:
>>>>>  > >
>>>>>  > >
>>>>>  > >  On Fri, Aug 20 2021 at 12:51:08 +0200, Bastien Nocera
>>>>>  > >  <hadess@xxxxxxxxxx> wrote:
>>>>>  > >  > On Fri, 2021-08-20 at 12:43 +0200, Bastien Nocera
>>>>> wrote:
>>>>>  > >  > >  On Fri, 2021-08-20 at 22:33 +1200, Luke Jones wrote:
>>>>>  > >  > >  > > Am I going to get bug reports from Asus users
>>>>> that will
>>>>>  > >  > > complain
>>>>>  > >  > >  > > that
>>>>>  > >  > >  > > power-profiles-daemon doesn't work correctly,
>>>>> where I
>>>>>  > > will
>>>>>  > >  > > have
>>>>>  > >  > >  > > to
>>>>>  > >  > >  > > wearily ask if they're using an Asus Rog laptop?
>>>>>  > >  > >  >
>>>>>  > >  > >  > No. Definitely not. The changes to fan curves per-
>>>>> profile
>>>>>  > > need
>>>>>  > >  > > to
>>>>>  > >  > >  > be
>>>>>  > >  > >  > explicitly enabled and set. So a new user will be
>>>>> unaware
>>>>>  > > that
>>>>>  > >  > > this
>>>>>  > >  > >  > control exists (until they look for it) and their
>>>>> laptop
>>>>>  > > will
>>>>>  > >  > >  > behave
>>>>>  > >  > >  > exactly as default.
>>>>>  > >  > >
>>>>>  > >  > >  "The user will need to change the fan curves
>>>>> manually so
>>>>>  > > will
>>>>>  > >  > >  definitely remember to mention it in bug reports" is
>>>>> a very
>>>>>  > >  > > different
>>>>>  > >  > >  thing to "the user can't change the fan curves to be
>>>>>  > > nonsensical
>>>>>  > >  > > and
>>>>>  > >  > >  mean opposite things".
>>>>>  > >  > >
>>>>>  > >  > >  I can assure you that I will eventually get bug
>>>>> reports
>>>>>  > > from
>>>>>  > >  > > "power
>>>>>  > >  > >  users" who break their setup and wonder why things
>>>>> don't
>>>>>  > > work
>>>>>  > >  > >  properly,
>>>>>  > >  > >  without ever mentioning the changes they made
>>>>> changes to
>>>>>  > > the
>>>>>  > > fan
>>>>>  > >  > >  curves, or anything else they might have changed.
>>>>>  > >  >
>>>>>  > >  > A way to taint the settings that power-profiles-daemon
>>>>> could
>>>>>  > > catch
>>>>>  > >  > would be fine by me. I absolutely don't want to have to
>>>>>  > > support
>>>>>  > >  > somebody's tweaks until they undo them.
>>>>>  > >
>>>>>  > >  Definitely understood. Do you have something in mind?
>>>>>  >
>>>>>  > A sysfs attribute with boolean data that shows whether
>>>>> custom fan
>>>>>  > curves are used would be enough.
>>>>>
>>>>>  The path /sys/devices/platform/asus-nb-
>>>>> wmi/active_fan_curve_profiles
>>>>>  should be usable like this? I added this as the method for
>>>>>  controlling
>>>>>  which fan curves for which profiles are active.
>>>>>
>>>>>  If empty, then no custom fan curves are active at all. If it
>>>>> contains
>>>>>  any combination of strings "quiet, balanced, performance" then
>>>>> those
>>>>>  associated (named) platform_profiles have an active fan curve
>>>>> and you
>>>>>  can throw up a general warning, maybe add the contents of that
>>>>> file
>>>>>  too?
>>>>
>>>> That works for me, although I would probably have preferred a way
>>>> that
>>>> wasn't specific to the asus-wmi module, I'm sure I can made do
>>>> with
>>>> that.
>>>
>>> Oh I see, you were looking to get a more general solution
>>> implemented? Maybe something like "/sys/devices/platform/asus-nb-
>>> wmi/platform_profile_tainted"? This could be an opportunity to
>>> maybe make a standardised naming scheme for it.
>>
>> That would standardize the name, but not the location (path to the
>> name);
>> so I'm not sure how helpful that would be. I think that for now
>> going with /sys/devices/platform/asus-nb-
>> wmi/active_fan_curve_profiles is fine
>> and if we hit the same situation with a 2nd driver then maybe do
>> something under the /sys/firmware/acpi/platform_profile* namespace.
>>
>> Maybe something like:
>>
>> /sys/firmware/acpi/platform_profile_flags or something which can
>> communicate a bunch of 0 (keyword not present) / 1 values
>> by containing a list of space separated keywords like:
>> "custom-fan-profiles", where "custom-fan-profiles" would only
>> show up when they are activated ?
>
> That would work for me but let's wait until there's something to make
> more generic before doing it, as you mentioned.

Ack.

Regards,

Hans