Re: [PATCH] drm/amd/display: Increase frame-larger-than warning limit

From: Palmer Dabbelt
Date: Tue Jun 04 2024 - 12:05:05 EST


On Mon, 03 Jun 2024 15:29:48 PDT (-0700), nathan@xxxxxxxxxx wrote:
Hi Palmer,

On Thu, May 30, 2024 at 07:57:42AM -0700, Palmer Dabbelt wrote:
From: Palmer Dabbelt <palmer@xxxxxxxxxxxx>

I get a handful of build errors along the lines of

linux/drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.c:58:13: error: stack frame size (2352) exceeds limit (2048) in 'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation' [-Werror,-Wframe-larger-than]
static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation(
^
linux/drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.c:1724:6: error: stack frame size (2096) exceeds limit (2048) in 'dml32_ModeSupportAndSystemConfigurationFull' [-Werror,-Wframe-larger-than]
void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
^

Judging from the message, this is clang/LLVM? What version?

Yes, LLVM. Looks like I'm on 16.0.6. Probably time for an update, so I'll give it a shot.

I assume
this showed up in 6.10-rc1 because of commit 77acc6b55ae4 ("riscv: add
support for kernel-mode FPU"), which allows this driver to be built for
RISC-V.

Seems reasonable. This didn't show up until post-merge, not 100% sure why. I didn't really dig any farther.

Is this allmodconfig or some other configuration?

IIRC both "allmodconfig" and "allyesconfig" show it, but I don't have a build tree sitting around to be 100% sure.

as of 6.10-rc1.

Signed-off-by: Palmer Dabbelt <palmer@xxxxxxxxxxxx>
---
drivers/gpu/drm/amd/display/dc/dml/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile
index c4a5efd2dda5..b2bd72e63734 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
@@ -62,9 +62,9 @@ endif

ifneq ($(CONFIG_FRAME_WARN),0)
ifeq ($(filter y,$(CONFIG_KASAN)$(CONFIG_KCSAN)),y)
-frame_warn_flag := -Wframe-larger-than=3072
+frame_warn_flag := -Wframe-larger-than=4096
else
-frame_warn_flag := -Wframe-larger-than=2048
+frame_warn_flag := -Wframe-larger-than=3072
endif
endif

--
2.45.1