lkml.org 
[lkml]   [2021]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] thermal: power allocator: Add control for non-power actor devices
From
Date


On 1/18/21 4:07 PM, Daniel Lezcano wrote:
> On 05/01/2021 20:01, Lukasz Luba wrote:
>> The cooling devices which are used in IPA should provide power mapping
>> functions. The callback functions are used for power estimation and state
>> setting. When these functions are missing IPA ignores such cooling devices
>> and does not limit their performance. It could happen that the platform
>> configuration is missing these functions in example when the Energy Model
>> was not setup properly (missing DT entry 'dynamic-power-coefficient').
>>
>> The patch adds basic control over these devices' performance. It
>> manages to throttle them to stay safe and not overheat. It also adds a
>> warning during the binding phase, so it can be captured during testing.
>>
>> The patch covers also a corner case when all of the cooling devices are
>> non-power actors.
>
> In my opinion this is a user space problem. If a device does not have
> power information, then it should use the step-wise governor instead.
>
> It is not the power allocator to overcome a wrong or unsupported setup.
>
> Usually, the default governor is the step-wise and the userspace sets
> the power allocator policy.

True, but currently there is even no warning to the user, that some
device (quite big, like GPU) is not controlled. This could be dangerous.

>
> A solution can be to fail to change the policy or bind if the associated
> cooling devices are not all power actors.

I tend to agree, we can simply 'fail' during the binding and print
some warning.

The code in that case would be much simpler. Let me send a v2 then.
Thank you for your comments.

Regards,
Lukasz

\
 
 \ /
  Last update: 2021-01-18 18:18    [W:0.043 / U:0.724 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site