Applied. Thanks! On Thu, Dec 19, 2024 at 6:46 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > > Commit 24909d9ec7c3 ("drm/amd/display: Overwriting dualDPP UBF values > before usage") added a new warning in dml2/display_mode_core.c when > building allmodconfig with clang: > > drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/display_mode_core.c:6268:13: error: stack frame size (3128) exceeds limit (3072) in 'dml_prefetch_check' [-Werror,-Wframe-larger-than] > 6268 | static void dml_prefetch_check(struct display_mode_lib_st *mode_lib) > | ^ > > Commit be4e3509314a ("drm/amd/display: DML21 Reintegration For Various > Fixes") introduced one in dml2_core/dml2_core_dcn4_calcs.c with the same > configuration: > > drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c:7236:13: error: stack frame size (3256) exceeds limit (3072) in 'dml_core_mode_support' [-Werror,-Wframe-larger-than] > 7236 | static bool dml_core_mode_support(struct dml2_core_calcs_mode_support_ex *in_out_params) > | ^ > > In the case of the first warning, the stack usage was already at the > limit at the parent change, so the offending change was rather > innocuous. In the case of the second warning, there was a rather > dramatic increase in stack usage compared to the parent: > > drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c:7032:13: error: stack frame size (2696) exceeds limit (2048) in 'dml_core_mode_support' [-Werror,-Wframe-larger-than] > 7032 | static bool dml_core_mode_support(struct dml2_core_calcs_mode_support_ex *in_out_params) > | ^ > > This is an unfortunate interaction between an issue with stack slot > reuse in LLVM that gets exacerbated by sanitization (which gets enabled > with all{mod,yes}config) and function calls using a much higher number > of parameters than is typical in the kernel, necessitating passing most > of these values on the stack. > > While it is possible that there should be source code changes to address > these warnings, this code is difficult to modify for various reasons, as > has been noted in other changes that have occurred for similar reasons, > such as commit 6740ec97bcdb ("drm/amd/display: Increase frame warning > limit with KASAN or KCSAN in dml2"). > > Increase the frame larger than limit when compile testing with clang and > the sanitizers enabled to avoid this breakage in all{mod,yes}config, as > they are commonly used and valuable testing targets. While it is not the > best to hide this issue, it is not really relevant when compile testing, > as the sanitizers are commonly stressful on optimizations and they are > only truly useful at runtime, which COMPILE_TEST states will not occur > with the current build. > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202412121748.chuX4sap-lkp@xxxxxxxxx/ > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > --- > drivers/gpu/drm/amd/display/dc/dml2/Makefile | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/amd/display/dc/dml2/Makefile b/drivers/gpu/drm/amd/display/dc/dml2/Makefile > index d9c27ebe12ee08d6330eb199cd8ca9c8489fa5b2..91c4f3b4bd5f46ac5c1c74f665b06dbe61081917 100644 > --- a/drivers/gpu/drm/amd/display/dc/dml2/Makefile > +++ b/drivers/gpu/drm/amd/display/dc/dml2/Makefile > @@ -29,7 +29,11 @@ dml2_rcflags := $(CC_FLAGS_NO_FPU) > > ifneq ($(CONFIG_FRAME_WARN),0) > ifeq ($(filter y,$(CONFIG_KASAN)$(CONFIG_KCSAN)),y) > +ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_COMPILE_TEST),yy) > +frame_warn_flag := -Wframe-larger-than=4096 > +else > frame_warn_flag := -Wframe-larger-than=3072 > +endif > else > frame_warn_flag := -Wframe-larger-than=2048 > endif > > --- > base-commit: 695c2c745e5dff201b75da8a1d237ce403600d04 > change-id: 20241219-amdgpu-dml2-address-clang-frame-larger-than-allconfig-f034d9c5118e > > Best regards, > -- > Nathan Chancellor <nathan@xxxxxxxxxx> >