[PATCH RESEND] drm/amd/display: Fix nested FPU context in dcn21_validate_bandwidth()

Alex Deucher alexdeucher at gmail.com
Fri Mar 5 19:22:35 UTC 2021


On Fri, Mar 5, 2021 at 6:39 AM Holger Hoffstätte
<holger at applied-asynchrony.com> wrote:
>
>
> Commit 41401ac67791 added FPU wrappers to dcn21_validate_bandwidth(),
> which was correct. Unfortunately a nested function alredy contained
> DC_FP_START()/DC_FP_END() calls, which results in nested FPU context
> enter/exit and complaints by kernel_fpu_begin_mask().
> This can be observed e.g. with 5.10.20, which backported 41401ac67791
> and now emits the following warning on boot:
>
> WARNING: CPU: 6 PID: 858 at arch/x86/kernel/fpu/core.c:129 kernel_fpu_begin_mask+0xa5/0xc0
> Call Trace:
>   dcn21_calculate_wm+0x47/0xa90 [amdgpu]
>   dcn21_validate_bandwidth_fp+0x15d/0x2b0 [amdgpu]
>   dcn21_validate_bandwidth+0x29/0x40 [amdgpu]
>   dc_validate_global_state+0x3c7/0x4c0 [amdgpu]
>
> The warning is emitted due to the additional DC_FP_START/END calls in
> patch_bounding_box(), which is inlined into dcn21_calculate_wm(),
> its only caller. Removing the calls brings the code in line with
> dcn20 and makes the warning disappear.
>
> Fixes: 41401ac67791 ("drm/amd/display: Add FPU wrappers to dcn21_validate_bandwidth()")
> Signed-off-by: Holger Hoffstätte <holger at applied-asynchrony.com>

Applied.  Thanks!

Alex

> ---
>   drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 4 ----
>   1 file changed, 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
> index 072f8c880924..68be73fe2e23 100644
> --- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
> +++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
> @@ -1062,8 +1062,6 @@ static void patch_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_s
>   {
>         int i;
>
> -       DC_FP_START();
> -
>         if (dc->bb_overrides.sr_exit_time_ns) {
>                 for (i = 0; i < WM_SET_COUNT; i++) {
>                           dc->clk_mgr->bw_params->wm_table.entries[i].sr_exit_time_us =
> @@ -1088,8 +1086,6 @@ static void patch_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_s
>                                 dc->bb_overrides.dram_clock_change_latency_ns / 1000.0;
>                 }
>         }
> -
> -       DC_FP_END();
>   }
>
>   void dcn21_calculate_wm(
> --
> 2.30.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list