From: ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
To: Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org
Subject: Re: [DPU PATCH 06/19] drm/msm: dpu_encoder_phys_cmd: Replace DPU_EVT with tracepoints
Date: Tue, 26 Jun 2018 16:07:27 +0530 [thread overview]
Message-ID: <374c0f78e729144825a17f23f02944da@codeaurora.org> (raw)
In-Reply-To: <20180620204841.56354-7-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
On 2018-06-21 02:18, Sean Paul wrote:
> This patch converts all DPU_EVTs in dpu_encoder_phys_cmd with either a
> DRM_* log
> message or a linux tracepoint.
>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Rajesh Yadav <ryadav@codeaurora.org>
> ---
> .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 79 +++++++++----------
> drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 68 ++++++++++++++++
> 2 files changed, 104 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> index 388de384e2cf..eb9314aaa85f 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> @@ -108,8 +108,9 @@ static void
> dpu_encoder_phys_cmd_pp_tx_done_irq(void *arg, int irq_idx)
> new_cnt = atomic_add_unless(&phys_enc->pending_kickoff_cnt, -1, 0);
> spin_unlock_irqrestore(phys_enc->enc_spinlock, lock_flags);
>
> - DPU_EVT32_IRQ(DRMID(phys_enc->parent),
> - phys_enc->hw_pp->idx - PINGPONG_0, new_cnt, event);
> + trace_dpu_enc_phys_cmd_pp_tx_done(DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> + new_cnt, event);
>
> /* Signal any waiting atomic commit thread */
> wake_up_all(&phys_enc->pending_kickoff_wq);
> @@ -245,21 +246,20 @@ static int
> _dpu_encoder_phys_cmd_handle_ppdone_timeout(
> do_log = true;
> }
>
> - DPU_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0,
> - cmd_enc->pp_timeout_report_cnt,
> - atomic_read(&phys_enc->pending_kickoff_cnt),
> - frame_event);
> + trace_dpu_enc_phys_cmd_pdone_timeout(DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> + cmd_enc->pp_timeout_report_cnt,
> + atomic_read(&phys_enc->pending_kickoff_cnt),
> + frame_event);
>
> /* to avoid flooding, only log first time, and "dead" time */
> if (do_log) {
> - DPU_ERROR_CMDENC(cmd_enc,
> - "pp:%d kickoff timed out ctl %d cnt %d koff_cnt %d\n",
> - phys_enc->hw_pp->idx - PINGPONG_0,
> - phys_enc->hw_ctl->idx - CTL_0,
> - cmd_enc->pp_timeout_report_cnt,
> - atomic_read(&phys_enc->pending_kickoff_cnt));
> -
> - DPU_EVT32(DRMID(phys_enc->parent), DPU_EVTLOG_FATAL);
> + DRM_ERROR("id:%d pp:%d kickoff timeout %d cnt %d koff_cnt %d\n",
> + DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> + phys_enc->hw_ctl->idx - CTL_0,
> + cmd_enc->pp_timeout_report_cnt,
> + atomic_read(&phys_enc->pending_kickoff_cnt));
>
> dpu_encoder_helper_unregister_irq(phys_enc, INTR_IDX_RDPTR);
> DPU_DBG_DUMP("all", "dbg_bus", "vbif_dbg_bus", "panic");
> @@ -308,8 +308,6 @@ static int dpu_encoder_phys_cmd_control_vblank_irq(
> struct dpu_encoder_phys *phys_enc,
> bool enable)
> {
> - struct dpu_encoder_phys_cmd *cmd_enc =
> - to_dpu_encoder_phys_cmd(phys_enc);
> int ret = 0;
> int refcount;
>
> @@ -330,10 +328,9 @@ static int
> dpu_encoder_phys_cmd_control_vblank_irq(
> goto end;
> }
>
> - DPU_DEBUG_CMDENC(cmd_enc, "[%pS] enable=%d/%d\n",
> - __builtin_return_address(0), enable, refcount);
> - DPU_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0,
> - enable, refcount);
> + DRM_DEBUG_KMS("id:%u pp:%d enable=%s/%d\n", DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> + enable ? "true" : "false", refcount);
>
> if (enable && atomic_inc_return(&phys_enc->vblank_refcount) == 1)
> ret = dpu_encoder_helper_register_irq(phys_enc, INTR_IDX_RDPTR);
> @@ -343,12 +340,10 @@ static int
> dpu_encoder_phys_cmd_control_vblank_irq(
>
> end:
> if (ret) {
> - DPU_ERROR_CMDENC(cmd_enc,
> - "control vblank irq error %d, enable %d, refcount %d\n",
> - ret, enable, refcount);
> - DPU_EVT32(DRMID(phys_enc->parent),
> - phys_enc->hw_pp->idx - PINGPONG_0,
> - enable, refcount, DPU_EVTLOG_ERROR);
> + DRM_ERROR("vblank irq err id:%u pp:%d ret:%d, enable %s/%d\n",
> + DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0, ret,
> + enable ? "true" : "false", refcount);
> }
>
> return ret;
> @@ -364,7 +359,8 @@ void dpu_encoder_phys_cmd_irq_control(struct
> dpu_encoder_phys *phys_enc,
>
> cmd_enc = to_dpu_encoder_phys_cmd(phys_enc);
>
> - DPU_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0,
> + trace_dpu_enc_phys_cmd_irq_ctrl(DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> enable, atomic_read(&phys_enc->vblank_refcount));
>
> if (enable) {
> @@ -557,7 +553,7 @@ static void _dpu_encoder_phys_cmd_connect_te(
> !phys_enc->hw_pp->ops.connect_external_te)
> return;
>
> - DPU_EVT32(DRMID(phys_enc->parent), enable);
> + trace_dpu_enc_phys_cmd_connect_te(DRMID(phys_enc->parent), enable);
> phys_enc->hw_pp->ops.connect_external_te(phys_enc->hw_pp, enable);
> }
>
> @@ -594,11 +590,9 @@ static void dpu_encoder_phys_cmd_disable(struct
> dpu_encoder_phys *phys_enc)
> DPU_ERROR("invalid encoder\n");
> return;
> }
> - DPU_DEBUG_CMDENC(cmd_enc, "pp %d state %d\n",
> - phys_enc->hw_pp->idx - PINGPONG_0,
> - phys_enc->enable_state);
> - DPU_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0,
> - phys_enc->enable_state);
> + DRM_DEBUG_KMS("id:%u pp:%d state:%d\n", DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> + phys_enc->enable_state);
>
> if (phys_enc->enable_state == DPU_ENC_DISABLED) {
> DPU_ERROR_CMDENC(cmd_enc, "already disabled\n");
> @@ -656,10 +650,9 @@ static void
> dpu_encoder_phys_cmd_prepare_for_kickoff(
> DPU_ERROR("invalid encoder\n");
> return;
> }
> - DPU_DEBUG_CMDENC(cmd_enc, "pp %d\n", phys_enc->hw_pp->idx -
> PINGPONG_0);
> -
> - DPU_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0,
> - atomic_read(&phys_enc->pending_kickoff_cnt));
> + DRM_DEBUG_KMS("id:%u pp:%d pending_cnt:%d\n",
> DRMID(phys_enc->parent),
> + phys_enc->hw_pp->idx - PINGPONG_0,
> + atomic_read(&phys_enc->pending_kickoff_cnt));
>
> /*
> * Mark kickoff request as outstanding. If there are more than one,
> @@ -669,9 +662,9 @@ static void
> dpu_encoder_phys_cmd_prepare_for_kickoff(
> if (ret) {
> /* force pending_kickoff_cnt 0 to discard failed kickoff */
> atomic_set(&phys_enc->pending_kickoff_cnt, 0);
> - DPU_EVT32(DRMID(phys_enc->parent),
> - phys_enc->hw_pp->idx - PINGPONG_0);
> - DPU_ERROR("failed wait_for_idle: %d\n", ret);
> + DRM_ERROR("failed wait_for_idle: id:%u ret:%d pp:%d\n",
> + DRMID(phys_enc->parent), ret,
> + phys_enc->hw_pp->idx - PINGPONG_0);
> }
>
> DPU_DEBUG_CMDENC(cmd_enc, "pp:%d pending_cnt %d\n",
> @@ -720,9 +713,9 @@ static int
> dpu_encoder_phys_cmd_wait_for_tx_complete(
>
> rc = _dpu_encoder_phys_cmd_wait_for_idle(phys_enc);
> if (rc) {
> - DPU_EVT32(DRMID(phys_enc->parent),
> - phys_enc->intf_idx - INTF_0);
> - DPU_ERROR("failed wait_for_idle: %d\n", rc);
> + DRM_ERROR("failed wait_for_idle: id:%u ret:%d intf:%d\n",
> + DRMID(phys_enc->parent), rc,
> + phys_enc->intf_idx - INTF_0);
> }
>
> return rc;
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> index 7169ff3a9805..a6313c4343c8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> @@ -437,6 +437,10 @@ DEFINE_EVENT(dpu_enc_id_enable_template,
> dpu_enc_frame_event_cb,
> TP_PROTO(uint32_t drm_id, bool enable),
> TP_ARGS(drm_id, enable)
> );
> +DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_phys_cmd_connect_te,
> + TP_PROTO(uint32_t drm_id, bool enable),
> + TP_ARGS(drm_id, enable)
> +);
>
> TRACE_EVENT(dpu_enc_rc,
> TP_PROTO(uint32_t drm_id, u32 sw_event, bool idle_pc_supported,
> @@ -604,6 +608,70 @@ TRACE_EVENT(dpu_enc_wait_event_timeout,
> __entry->expected_time, __entry->atomic_cnt)
> );
>
> +TRACE_EVENT(dpu_enc_phys_cmd_irq_ctrl,
> + TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, bool enable,
> + int refcnt),
> + TP_ARGS(drm_id, pp, enable, refcnt),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( enum dpu_pingpong, pp )
> + __field( bool, enable )
> + __field( int, refcnt )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->pp = pp;
> + __entry->enable = enable;
> + __entry->refcnt = refcnt;
> + ),
> + TP_printk("id=%u, pp=%d, enable=%s, refcnt=%d", __entry->drm_id,
> + __entry->pp, __entry->enable ? "true" : "false",
> + __entry->refcnt)
> +);
> +
> +TRACE_EVENT(dpu_enc_phys_cmd_pp_tx_done,
> + TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int new_count,
> + u32 event),
> + TP_ARGS(drm_id, pp, new_count, event),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( enum dpu_pingpong, pp )
> + __field( int, new_count )
> + __field( u32, event )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->pp = pp;
> + __entry->new_count = new_count;
> + __entry->event = event;
> + ),
> + TP_printk("id=%u, pp=%d, new_count=%d, event=%u", __entry->drm_id,
> + __entry->pp, __entry->new_count, __entry->event)
> +);
> +
> +TRACE_EVENT(dpu_enc_phys_cmd_pdone_timeout,
> + TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int timeout_count,
> + int kickoff_count, u32 event),
> + TP_ARGS(drm_id, pp, timeout_count, kickoff_count, event),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( enum dpu_pingpong, pp )
> + __field( int, timeout_count )
> + __field( int, kickoff_count )
> + __field( u32, event )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->pp = pp;
> + __entry->timeout_count = timeout_count;
> + __entry->kickoff_count = kickoff_count;
> + __entry->event = event;
> + ),
> + TP_printk("id=%u, pp=%d, timeout_count=%d, kickoff_count=%d,
> event=%u",
> + __entry->drm_id, __entry->pp, __entry->timeout_count,
> + __entry->kickoff_count, __entry->event)
> +);
> +
> TRACE_EVENT(dpu_crtc_setup_mixer,
> TP_PROTO(uint32_t crtc_id, uint32_t plane_id,
> struct drm_plane_state *state, struct dpu_plane_state *pstate,
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
next prev parent reply other threads:[~2018-06-26 10:37 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-20 20:48 [DPU PATCH 00/19] drm/msm: dpu: Clean up dpu_dbg Sean Paul
[not found] ` <20180620204841.56354-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-20 20:48 ` [DPU PATCH 01/19] drm/msm: dpu_encoder: Replace DPU_EVT with tracepoints Sean Paul
[not found] ` <20180620204841.56354-2-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 15:57 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 02/19] drm/msm: dpu_crtc: " Sean Paul
[not found] ` <20180620204841.56354-3-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 15:45 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 03/19] drm/msm: dpu_plane: " Sean Paul
[not found] ` <20180620204841.56354-4-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:39 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 04/19] drm/msm: dpu_rm: " Sean Paul
[not found] ` <20180620204841.56354-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:30 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 05/19] drm/msm: dpu_kms: " Sean Paul
[not found] ` <20180620204841.56354-6-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:42 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 06/19] drm/msm: dpu_encoder_phys_cmd: " Sean Paul
[not found] ` <20180620204841.56354-7-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:37 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ [this message]
2018-06-20 20:48 ` [DPU PATCH 07/19] drm/msm: dpu_encoder_phys_vid: " Sean Paul
[not found] ` <20180620204841.56354-8-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:47 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 08/19] drm/msm: dpu_vbif: " Sean Paul
[not found] ` <20180620204841.56354-9-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:43 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 09/19] drm/msm: dpu_pingpong: " Sean Paul
[not found] ` <20180620204841.56354-10-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:45 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 10/19] drm/msm: dpu_core_irq: " Sean Paul
[not found] ` <20180620204841.56354-11-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:51 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 11/19] drm/msm: dpu_core_perf: " Sean Paul
[not found] ` <20180620204841.56354-12-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:46 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 12/19] drm/msm: dpu_mdss: Replace DPU_EVT with DRM_ERROR Sean Paul
[not found] ` <20180620204841.56354-13-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:47 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 13/19] drm/msm: dpu: Remove dpu evtlog Sean Paul
[not found] ` <20180620204841.56354-14-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:52 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 14/19] drm/msm: dpu_dbg: Remove dump_all option for dumping registers Sean Paul
2018-06-20 20:48 ` [DPU PATCH 15/19] drm/msm: dpu: Remove arbitrary register dumps Sean Paul
2018-06-20 20:48 ` [DPU PATCH 16/19] drm/msm: dpu: Remove panic from dpu debug dump Sean Paul
2018-06-20 20:48 ` [DPU PATCH 17/19] drm/msm: dpu: Remove dsi debug block name Sean Paul
2018-06-20 20:48 ` [DPU PATCH 18/19] drm/msm: dpu_dbg: Remove string parsing from DBG_DUMP Sean Paul
2018-06-20 20:48 ` [DPU PATCH 19/19] drm/msm: dpu: Move dpu_dbg into dpu1 directory Sean Paul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=374c0f78e729144825a17f23f02944da@codeaurora.org \
--to=ryadav-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.