[PATCH v3 0/5] Thermal devfreq cooling improvements with Energy Model

Lukasz Luba lukasz.luba at arm.com
Thu Dec 10 13:22:18 UTC 2020


Hi Daniel,

On 12/9/20 10:30 AM, Lukasz Luba wrote:
> Hi all,
> 
> This patch set is a continuation of my previous work, which aimed
> to add Energy Model to all devices [1]. This series is a follow up
> for the patches which got merged to v5.9-rc1. It aims to change
> the thermal devfreq cooling and use the Energy Model instead of
> private power table and structures. The power model is now simplified,
> static power and dynamic power are removed. The new registration interface
> in the patch 3/5 helps to register devfreq cooling and the EM in one call.
> There is also small improvement, patch 2/5 is changing the way how
> thermal gets the device status (now uses a copy) and normalize the values.
> The last patch is here for consistency and will probably go through drm tree.
> 
> The patch set is based on current next-20201208, because it depends on EM
> API change which is queued in the pm/linux-next tree as v5.11 material.
> 
> changes:
> v3:
> - dropped direct check of device status and used just a copy of 'status';
>    a separate patch set will be proposed to address this issue
> - modified _normalize_load() and used 1024 scale to handle ms, us, ns
> - removed 'em_registered' and called em_dev_unregister_perf_domain()
>    unconditionally, so the drivers will have to make sure the right order of
>    all unregister calls to frameworks which might use EM; this call must be last
>    one; a proper comment added
> - removed 'em' pointer from struct devfreq_cooling_device, 'dev->em_pd' is used
> - removed of_node_get/put(), since the code can handle it
> - removed dfc_em_get_requested_power() (as missed to do it in v2)
> - collected all Reviewed-by tags
> v2 [3]:
> - renamed freq_get_state() and related to perf_idx pattern as
>    suggested by Ionela
> v1 [2]
> 
> Regards,
> Lukasz Luba
> 
> [1] https://lkml.org/lkml/2020/5/11/326
> [2] https://lore.kernel.org/linux-pm/20200921122007.29610-1-lukasz.luba@arm.com/
> [3] https://lore.kernel.org/linux-pm/20201118120358.17150-1-lukasz.luba@arm.com/
> 
> Lukasz Luba (5):
>    thermal: devfreq_cooling: change tracing function and arguments
>    thermal: devfreq_cooling: use a copy of device status
>    thermal: devfreq_cooling: add new registration functions with Energy
>      Model
>    thermal: devfreq_cooling: remove old power model and use EM
>    drm/panfrost: Register devfreq cooling and attempt to add Energy Model
> 
>   drivers/gpu/drm/panfrost/panfrost_devfreq.c |   2 +-
>   drivers/thermal/devfreq_cooling.c           | 420 ++++++++++----------
>   include/linux/devfreq_cooling.h             |  40 +-
>   include/trace/events/thermal.h              |  19 +-
>   4 files changed, 240 insertions(+), 241 deletions(-)
> 

If you consider to take it, please don't. I am going to send a v4 which
does not have this em_dev_register_perf_domain() dependency due to API
change. Then it could go via your thermal tree without issues.

It will be a small change in the patch 3/5, which will simplify
registration function (use only dev_pm_opp_of_register_em()) and also
instead of two registration function, have only one (which was also
suggested by Ionela during review).

Regards,
Lukasz


More information about the dri-devel mailing list