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

From: Rafael J. Wysocki
Date: Fri Dec 29 2023 - 12:15:24 EST


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!