Re: [PATCH v3 0/9] Add callback for cooling list update to speed-up IPA

From: Lukasz Luba
Date: Tue Jan 02 2024 - 04:38:28 EST




On 12/29/23 17:15, Rafael J. Wysocki wrote:
On Thu, Dec 21, 2023 at 12:16 AM Lukasz Luba <lukasz.luba@xxxxxxx> wrote:

Hi all,

The patch set adds a new callback for thermal governors and implementation for
Intelligent Power Allocator.

The goal is to move some heavy operations like the memory allocations and heavy
computations (multiplications) out of throttle() callback hot path.

The new callback is generic enough to handle other important update events.
It re-uses existing thermal_notify_event definitions.

In addition there are some small clean-ups for IPA code.

The patch set is based on current pm/bleeding-edge branch (20 Dec).

changes:
v3:
- changed helper name to thermal_governor_update_tz() with also
"reason" argument (Rafael)
- added thermal_governor_update_tz() to thermal_core.h for use from sysfs
functions
- changed names of the events (THERMAL_TZ_BIND_CDEV) (Rafael)
- patch 2/9 changed header and comment for function (Rafael)
- patch 3/9: used unsigned types for num_actors, buffer_size (Rafael)
- changed trace functions and added new patch 4/9 to be prepare tracing for
different internal IPA array; it also drops dynamic array inside trace event
- used new structure power_actor and changed the code in patch 5/9 (Rafael)
- keept the local num_actors variable (Rafael)
- patch 6/9 skipped redundant parens and changed the header desc. (Rafael)
- patch 7/9 changed header and used instance->tz->lock (Rafael)
- patch 8/9 removed handle_weight_update() and renamed new event to
THERMAL_INSTANCE_WEIGHT_CHANGE (Rafael)
- patch 9/9 aliged to use THERMAL_INSTANCE_WEIGHT_CHANGE is switch (Rafael)

v2 can be found here [1]

Regards,
Lukasz

[1] https://lore.kernel.org/lkml/20231212134844.1213381-1-lukasz.luba@xxxxxxx/

Lukasz Luba (9):
thermal: core: Add governor callback for thermal zone change
thermal: gov_power_allocator: Refactor check_power_actors()
thermal: gov_power_allocator: Refactor checks in divvy_up_power()
thermal: gov_power_allocator: Change trace functions
thermal: gov_power_allocator: Move memory allocation out of throttle()
thermal: gov_power_allocator: Simplify checks for valid power actor
thermal/sysfs: Update instance->weight under tz lock
thermal/sysfs: Update governors when the 'weight' has changed
thermal: gov_power_allocator: Support new update callback of weights

drivers/thermal/gov_power_allocator.c | 269 ++++++++++++++++----------
drivers/thermal/thermal_core.c | 14 ++
drivers/thermal/thermal_core.h | 2 +
drivers/thermal/thermal_sysfs.c | 7 +
drivers/thermal/thermal_trace_ipa.h | 50 +++--
include/linux/thermal.h | 7 +
6 files changed, 226 insertions(+), 123 deletions(-)

--

All patches in the series applied as 6.8 material, with minor white
space adjustment in patch [8/9].

Thanks!


Thank you Rafael!