Message ID | 20231220231753.1824364-1-lukasz.luba@arm.com |
---|---|
Headers | show |
Series | Add callback for cooling list update to speed-up IPA | expand |
On Thu, Dec 21, 2023 at 12:16 AM Lukasz Luba <lukasz.luba@arm.com> 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@arm.com/ > > 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!