Re: [PATCH] drm/amd/display: Increase sanitizer frame larger than limit when compile testing with clang

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>
>




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux