]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/msm/a6xx: Fix excessive stack usage
authorAkhil P Oommen <quic_akhilpo@quicinc.com>
Sun, 27 Oct 2024 18:05:47 +0000 (23:35 +0530)
committerRob Clark <robdclark@chromium.org>
Mon, 28 Oct 2024 16:31:33 +0000 (09:31 -0700)
commitd6d1ad32d00714ecf9f1996173c6f98e43c5b022
tree10658eb46ed1c339dbad9a1cefe0b01512446556
parent8f32ddd87e499ba6d2dc74ce30b6932baf1e1fc3
drm/msm/a6xx: Fix excessive stack usage

Clang-19 and above sometimes end up with multiple copies of the large
a6xx_hfi_msg_bw_table structure on the stack. The problem is that
a6xx_hfi_send_bw_table() calls a number of device specific functions to
fill the structure, but these create another copy of the structure on
the stack which gets copied to the first.

If the functions get inlined, that busts the warning limit:

drivers/gpu/drm/msm/adreno/a6xx_hfi.c:631:12: error: stack frame size (1032) exceeds limit (1024) in 'a6xx_hfi_send_bw_table' [-Werror,-Wframe-larger-than]

Fix this by kmalloc-ating struct a6xx_hfi_msg_bw_table instead of using
the stack. Also, use this opportunity to skip re-initializing this table
to optimize gpu wake up latency.

Cc: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/621814/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gmu.h
drivers/gpu/drm/msm/adreno/a6xx_hfi.c