OSDN Git Service

drm/msm: return the average load over the polling period
authorChia-I Wu <olvaffe@gmail.com>
Sat, 16 Apr 2022 00:33:14 +0000 (17:33 -0700)
committerRob Clark <robdclark@chromium.org>
Thu, 21 Apr 2022 22:05:23 +0000 (15:05 -0700)
commit78f815c1cf8fc5f05dc5cec29eb1895cb53470e9
tree3c57088b050018e3c6726e9350a5b282eaaad615
parent15c411980bacddf294452fd1cf7308b14f3f8c63
drm/msm: return the average load over the polling period

simple_ondemand interacts poorly with clamp_to_idle.  It only looks at
the load since the last get_dev_status call, while it should really look
at the load over polling_ms.  When clamp_to_idle true, it almost always
picks the lowest frequency on active because the gpu is idle between
msm_devfreq_idle/msm_devfreq_active.

This logic could potentially be moved into devfreq core.

Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Cc: Rob Clark <robdclark@chromium.org>
Link: https://lore.kernel.org/r/20220416003314.59211-3-olvaffe@gmail.com
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/msm_gpu.h
drivers/gpu/drm/msm/msm_gpu_devfreq.c