[PATCH] drm/amd/display: Use pr_debug in DM to prevent dmesg flooding
Harry Wentland
harry.wentland at amd.com
Tue Mar 30 20:17:47 UTC 2021
On 2021-03-30 1:22 p.m., Victor Lu wrote:
> [why]
> Enabling drm.debug=0x4 can flood the dmesg due to prints on every cursor
> update or page flip.
>
Maybe mention something like this: "Our CI enables drm.debug=0x4 logs
and is now getting spammed with cursor updates. We probably want to
avoid spamming the log when DRM_DEBUG_KMS."
The change is
Reviewed-by: Harry Wentland <harry.wentland at amd.com>
Harry
> [how]
> Define and use pr_debug macros instead of a few spammy DRM_DEBUG_*'s.
>
> Signed-off-by: Victor Lu <victorchengchi.lu at amd.com>
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 20 +++++++++----------
> .../drm/amd/display/include/logger_types.h | 3 +++
> 2 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 92cee957b424..04dbcbc7578d 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -372,14 +372,14 @@ static void dm_pflip_high_irq(void *interrupt_params)
> /* IRQ could occur when in initial stage */
> /* TODO work and BO cleanup */
> if (amdgpu_crtc == NULL) {
> - DRM_DEBUG_DRIVER("CRTC is null, returning.\n");
> + DC_LOG_PFLIP("CRTC is null, returning.\n");
> return;
> }
>
> spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags);
>
> if (amdgpu_crtc->pflip_status != AMDGPU_FLIP_SUBMITTED){
> - DRM_DEBUG_DRIVER("amdgpu_crtc->pflip_status = %d !=AMDGPU_FLIP_SUBMITTED(%d) on crtc:%d[%p] \n",
> + DC_LOG_PFLIP("amdgpu_crtc->pflip_status = %d !=AMDGPU_FLIP_SUBMITTED(%d) on crtc:%d[%p] \n",
> amdgpu_crtc->pflip_status,
> AMDGPU_FLIP_SUBMITTED,
> amdgpu_crtc->crtc_id,
> @@ -450,9 +450,9 @@ static void dm_pflip_high_irq(void *interrupt_params)
> amdgpu_crtc->pflip_status = AMDGPU_FLIP_NONE;
> spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags);
>
> - DRM_DEBUG_KMS("crtc:%d[%p], pflip_stat:AMDGPU_FLIP_NONE, vrr[%d]-fp %d\n",
> - amdgpu_crtc->crtc_id, amdgpu_crtc,
> - vrr_active, (int) !e);
> + DC_LOG_PFLIP("crtc:%d[%p], pflip_stat:AMDGPU_FLIP_NONE, vrr[%d]-fp %d\n",
> + amdgpu_crtc->crtc_id, amdgpu_crtc,
> + vrr_active, (int) !e);
> }
>
> static void dm_vupdate_high_irq(void *interrupt_params)
> @@ -482,7 +482,7 @@ static void dm_vupdate_high_irq(void *interrupt_params)
> atomic64_set(&irq_params->previous_timestamp, vblank->time);
> }
>
> - DRM_DEBUG_VBL("crtc:%d, vupdate-vrr:%d\n",
> + DC_LOG_VBLANK("crtc:%d, vupdate-vrr:%d\n",
> acrtc->crtc_id,
> vrr_active);
>
> @@ -535,7 +535,7 @@ static void dm_crtc_high_irq(void *interrupt_params)
>
> vrr_active = amdgpu_dm_vrr_active_irq(acrtc);
>
> - DRM_DEBUG_VBL("crtc:%d, vupdate-vrr:%d, planes:%d\n", acrtc->crtc_id,
> + DC_LOG_VBLANK("crtc:%d, vupdate-vrr:%d, planes:%d\n", acrtc->crtc_id,
> vrr_active, acrtc->dm_irq_params.active_planes);
>
> /**
> @@ -7991,7 +7991,7 @@ static void handle_cursor_update(struct drm_plane *plane,
> if (!plane->state->fb && !old_plane_state->fb)
> return;
>
> - DRM_DEBUG_KMS("%s: crtc_id=%d with size %d to %d\n",
> + DC_LOG_CURSOR("%s: crtc_id=%d with size %d to %d\n",
> __func__,
> amdgpu_crtc->crtc_id,
> plane->state->crtc_w,
> @@ -8053,8 +8053,8 @@ static void prepare_flip_isr(struct amdgpu_crtc *acrtc)
> /* Mark this event as consumed */
> acrtc->base.state->event = NULL;
>
> - DRM_DEBUG_KMS("crtc:%d, pflip_stat:AMDGPU_FLIP_SUBMITTED\n",
> - acrtc->crtc_id);
> + DC_LOG_PFLIP("crtc:%d, pflip_stat:AMDGPU_FLIP_SUBMITTED\n",
> + acrtc->crtc_id);
> }
>
> static void update_freesync_state_on_stream(
> diff --git a/drivers/gpu/drm/amd/display/include/logger_types.h b/drivers/gpu/drm/amd/display/include/logger_types.h
> index 21bbee17c527..571fcf23cea9 100644
> --- a/drivers/gpu/drm/amd/display/include/logger_types.h
> +++ b/drivers/gpu/drm/amd/display/include/logger_types.h
> @@ -36,6 +36,9 @@
> #define DC_LOG_DC(...) DRM_DEBUG_KMS(__VA_ARGS__)
> #define DC_LOG_DTN(...) DRM_DEBUG_KMS(__VA_ARGS__)
> #define DC_LOG_SURFACE(...) pr_debug("[SURFACE]:"__VA_ARGS__)
> +#define DC_LOG_CURSOR(...) pr_debug("[CURSOR]:"__VA_ARGS__)
> +#define DC_LOG_PFLIP(...) pr_debug("[PFLIP]:"__VA_ARGS__)
> +#define DC_LOG_VBLANK(...) pr_debug("[VBLANK]:"__VA_ARGS__)
> #define DC_LOG_HW_HOTPLUG(...) DRM_DEBUG_KMS(__VA_ARGS__)
> #define DC_LOG_HW_LINK_TRAINING(...) pr_debug("[HW_LINK_TRAINING]:"__VA_ARGS__)
> #define DC_LOG_HW_SET_MODE(...) DRM_DEBUG_KMS(__VA_ARGS__)
>
More information about the amd-gfx
mailing list