[PATCH] drm/amd/display: Increase sanitizer frame larger than limit when compile testing with clang
Alex Deucher
alexdeucher at gmail.com
Mon Jan 6 17:29:32 UTC 2025
Applied. Thanks!
On Thu, Dec 19, 2024 at 6:46 PM Nathan Chancellor <nathan at kernel.org> 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 at intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202412121748.chuX4sap-lkp@intel.com/
> Signed-off-by: Nathan Chancellor <nathan at kernel.org>
> ---
> 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 at kernel.org>
>
More information about the amd-gfx
mailing list