• Nathan Chancellor's avatar
    drm/amd/display: Increase frame warning limit with KASAN or KCSAN in dml2 · 6740ec97
    Nathan Chancellor authored
    When building ARCH=x86_64 allmodconfig with clang, which will typically
    have sanitizers enabled, there is a warning about a large stack frame.
    
      drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/display_mode_core.c:6265:13: error: stack frame size (2520) exceeds limit (2048) in 'dml_prefetch_check' [-Werror,-Wframe-larger-than]
       6265 | static void dml_prefetch_check(struct display_mode_lib_st *mode_lib)
            |             ^
      1 error generated.
    
    Notably, GCC 13.2.0 does not do too much of a better job, as it is right
    at the current limit of 2048 (and others have reported being over with
    older GCC versions):
    
      drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/display_mode_core.c: In function 'dml_prefetch_check':
      drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/display_mode_core.c:6705:1: error: the frame size of 2048 bytes is larger than 1800 bytes [-Werror=frame-larger-than=]
       6705 | }
            | ^
    
    In the past, these warnings have been avoided by reducing the number of
    parameters to various functions so that not as many arguments need to be
    passed on the stack. However, these patches take a good amount of effort
    to write despite being mechanical due to code structure and complexity
    and they are never carried forward to new generations of the code so
    that effort has to be expended every new hardware generation, which
    becomes harder to justify as time goes on.
    
    To avoid having a noticeable or lengthy breakage in all{mod,yes}config,
    which are easy testing targets that have -Werror enabled, increase the
    limit for configurations that have KASAN or KCSAN enabled by 50% so that
    cases of extremely poor code generation can still be caught while not
    breaking the majority of builds. CONFIG_KMSAN also causes high stack
    usage but the frame limit is already set to zero when it is enabled,
    which is accounted for by the check for CONFIG_FRAME_WARN=0 in the dml2
    Makefile.
    Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    6740ec97
Makefile 3.58 KB