mbox series

[v4,0/3] Improve IPA mechanisms in low temperature state

Message ID 20210422114308.29684-1-lukasz.luba@arm.com (mailing list archive)
Headers show
Series Improve IPA mechanisms in low temperature state | expand

Message

Lukasz Luba April 22, 2021, 11:43 a.m. UTC
Hi all,

This v4 patch set aims to address the issues present in IPA when the
temperature is below the first trip point and cooling devices are not
throttled.
The last patch 1/3 is co-developed by Daniel, who presented the code
during v2 review. I have created a helper function based on his idea,
which can now be used inside IPA governor lock protected code. 
The patch 2/3 adds a basic check of cooling devices power to keep the
internal statistics fresh. This allows to avoid issue when the statistics
cover very long period, because they were not maintained.
The patch 3/3 addresses an issue described in bugzilla [1], which is:
unnecessary updating cooling devices when their state has not changed
because they are not throttled. This update triggers sending an event,
which should be avoided. Thus, patch 2/3 adds a tracking mechanism if
the update was triggered and makes sure it will be done only once when
the temperature continue to stay below first trip point.

changelog:
v4:
- reordered the patches, patch 3/3 from v3 is now 1/3 
v3:
- new patch 3/3 co-developed with Daniel
v2:
- patch 2/2 uses now simple 'update' bool flag and information from
  'tz->last_temperature'
- patch 1/2 has small change in the comment
- re-based on top of today's thermal/next branch

Regards,
Lukasz Luba

[1] https://bugzilla.kernel.org/show_bug.cgi?id=212501

Lukasz Luba (3):
  thermal: create a helper __thermal_cdev_update() without a lock
  thermal: power_allocator: maintain the device statistics from going
    stale
  thermal: power_allocator: update once cooling devices when temp is low

 drivers/thermal/gov_power_allocator.c | 21 +++++++++++++++++----
 drivers/thermal/thermal_core.h        |  1 +
 drivers/thermal/thermal_helpers.c     | 27 +++++++++++++++++----------
 3 files changed, 35 insertions(+), 14 deletions(-)

Comments

Daniel Lezcano April 22, 2021, 5:30 p.m. UTC | #1
On 22/04/2021 13:43, Lukasz Luba wrote:
> Hi all,
> 
> This v4 patch set aims to address the issues present in IPA when the
> temperature is below the first trip point and cooling devices are not
> throttled.
> The last patch 1/3 is co-developed by Daniel, who presented the code
> during v2 review. I have created a helper function based on his idea,
> which can now be used inside IPA governor lock protected code. 
> The patch 2/3 adds a basic check of cooling devices power to keep the
> internal statistics fresh. This allows to avoid issue when the statistics
> cover very long period, because they were not maintained.
> The patch 3/3 addresses an issue described in bugzilla [1], which is:
> unnecessary updating cooling devices when their state has not changed
> because they are not throttled. This update triggers sending an event,
> which should be avoided. Thus, patch 2/3 adds a tracking mechanism if
> the update was triggered and makes sure it will be done only once when
> the temperature continue to stay below first trip point.
> 
> changelog:
> v4:
> - reordered the patches, patch 3/3 from v3 is now 1/3 
> v3:
> - new patch 3/3 co-developed with Daniel
> v2:
> - patch 2/2 uses now simple 'update' bool flag and information from
>   'tz->last_temperature'
> - patch 1/2 has small change in the comment
> - re-based on top of today's thermal/next branch
> 
> Regards,
> Lukasz Luba
> 
> [1] https://bugzilla.kernel.org/show_bug.cgi?id=212501
> 
> Lukasz Luba (3):
>   thermal: create a helper __thermal_cdev_update() without a lock
>   thermal: power_allocator: maintain the device statistics from going
>     stale
>   thermal: power_allocator: update once cooling devices when temp is low
> 
>  drivers/thermal/gov_power_allocator.c | 21 +++++++++++++++++----
>  drivers/thermal/thermal_core.h        |  1 +
>  drivers/thermal/thermal_helpers.c     | 27 +++++++++++++++++----------
>  3 files changed, 35 insertions(+), 14 deletions(-)

Applied, thanks
Lukasz Luba April 22, 2021, 5:33 p.m. UTC | #2
On 4/22/21 6:30 PM, Daniel Lezcano wrote:
> On 22/04/2021 13:43, Lukasz Luba wrote:
>> Hi all,
>>
>> This v4 patch set aims to address the issues present in IPA when the
>> temperature is below the first trip point and cooling devices are not
>> throttled.
>> The last patch 1/3 is co-developed by Daniel, who presented the code
>> during v2 review. I have created a helper function based on his idea,
>> which can now be used inside IPA governor lock protected code.
>> The patch 2/3 adds a basic check of cooling devices power to keep the
>> internal statistics fresh. This allows to avoid issue when the statistics
>> cover very long period, because they were not maintained.
>> The patch 3/3 addresses an issue described in bugzilla [1], which is:
>> unnecessary updating cooling devices when their state has not changed
>> because they are not throttled. This update triggers sending an event,
>> which should be avoided. Thus, patch 2/3 adds a tracking mechanism if
>> the update was triggered and makes sure it will be done only once when
>> the temperature continue to stay below first trip point.
>>
>> changelog:
>> v4:
>> - reordered the patches, patch 3/3 from v3 is now 1/3
>> v3:
>> - new patch 3/3 co-developed with Daniel
>> v2:
>> - patch 2/2 uses now simple 'update' bool flag and information from
>>    'tz->last_temperature'
>> - patch 1/2 has small change in the comment
>> - re-based on top of today's thermal/next branch
>>
>> Regards,
>> Lukasz Luba
>>
>> [1] https://bugzilla.kernel.org/show_bug.cgi?id=212501
>>
>> Lukasz Luba (3):
>>    thermal: create a helper __thermal_cdev_update() without a lock
>>    thermal: power_allocator: maintain the device statistics from going
>>      stale
>>    thermal: power_allocator: update once cooling devices when temp is low
>>
>>   drivers/thermal/gov_power_allocator.c | 21 +++++++++++++++++----
>>   drivers/thermal/thermal_core.h        |  1 +
>>   drivers/thermal/thermal_helpers.c     | 27 +++++++++++++++++----------
>>   3 files changed, 35 insertions(+), 14 deletions(-)
> 
> Applied, thanks
> 
> 

Thank you Daniel!

Regards,
Lukasz