Message ID | 20180620204841.56354-5-seanpaul@chromium.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 2018-06-21 02:18, Sean Paul wrote: > This patch converts all DPU_EVTs in dpu_rm 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> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 65 ++++++++++------------- > drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 49 +++++++++++++++++ > 2 files changed, 78 insertions(+), 36 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > index eff316bb2134..13c0a36d4ef9 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > @@ -20,6 +20,7 @@ > #include "dpu_hw_pingpong.h" > #include "dpu_hw_intf.h" > #include "dpu_encoder.h" > +#include "dpu_trace.h" > > #define RESERVED_BY_OTHER(h, r) \ > ((h)->rsvp && ((h)->rsvp->enc_id != (r)->enc_id)) > @@ -121,9 +122,8 @@ static void _dpu_rm_print_rsvps( > DPU_DEBUG("%d\n", stage); > > list_for_each_entry(rsvp, &rm->rsvps, list) { > - DPU_DEBUG("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq, > - rsvp->enc_id, rsvp->topology); > - DPU_EVT32(stage, rsvp->seq, rsvp->enc_id, rsvp->topology); > + DRM_DEBUG_KMS("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq, > + rsvp->enc_id, rsvp->topology); > } > > for (type = 0; type < DPU_HW_BLK_MAX; type++) { > @@ -131,14 +131,7 @@ static void _dpu_rm_print_rsvps( > if (!blk->rsvp && !blk->rsvp_nxt) > continue; > > - DPU_DEBUG("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage, > - (blk->rsvp) ? blk->rsvp->seq : 0, > - (blk->rsvp) ? blk->rsvp->enc_id : 0, > - (blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0, > - (blk->rsvp_nxt) ? blk->rsvp_nxt->enc_id : 0, > - blk->type, blk->id); > - > - DPU_EVT32(stage, > + DRM_DEBUG_KMS("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage, > (blk->rsvp) ? blk->rsvp->seq : 0, > (blk->rsvp) ? blk->rsvp->enc_id : 0, > (blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0, > @@ -597,7 +590,8 @@ static int _dpu_rm_reserve_lms( > lm[i]->rsvp_nxt = rsvp; > pp[i]->rsvp_nxt = rsvp; > > - DPU_EVT32(lm[i]->type, rsvp->enc_id, lm[i]->id, pp[i]->id); > + trace_dpu_rm_reserve_lms(lm[i]->id, lm[i]->type, rsvp->enc_id, > + pp[i]->id); > } > > return rc; > @@ -642,7 +636,8 @@ static int _dpu_rm_reserve_ctls( > > for (i = 0; i < ARRAY_SIZE(ctls) && i < top->num_ctl; i++) { > ctls[i]->rsvp_nxt = rsvp; > - DPU_EVT32(ctls[i]->type, rsvp->enc_id, ctls[i]->id); > + trace_dpu_rm_reserve_ctls(ctls[i]->id, ctls[i]->type, > + rsvp->enc_id); > } > > return 0; > @@ -656,6 +651,8 @@ static int _dpu_rm_reserve_cdm( > { > struct dpu_rm_hw_iter iter; > > + DRM_DEBUG_KMS("type %d id %d\n", type, id); > + > dpu_rm_init_hw_iter(&iter, 0, DPU_HW_BLK_CDM); > while (_dpu_rm_get_hw_locked(rm, &iter)) { > const struct dpu_hw_cdm *cdm = to_dpu_hw_cdm(iter.blk->hw); > @@ -668,14 +665,16 @@ static int _dpu_rm_reserve_cdm( > if (type == DPU_HW_BLK_INTF && id != INTF_MAX) > match = test_bit(id, &caps->intf_connect); > > - DPU_DEBUG("type %d id %d, cdm intfs %lu match %d\n", > - type, id, caps->intf_connect, match); > + DRM_DEBUG_KMS("iter: type:%d id:%d enc:%d cdm:%lu match:%d\n", > + iter.blk->type, iter.blk->id, rsvp->enc_id, > + caps->intf_connect, match); > > if (!match) > continue; > > + trace_dpu_rm_reserve_cdm(iter.blk->id, iter.blk->type, > + rsvp->enc_id); > iter.blk->rsvp_nxt = rsvp; > - DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id); > break; > } > > @@ -709,7 +708,8 @@ static int _dpu_rm_reserve_intf( > } > > iter.blk->rsvp_nxt = rsvp; > - DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id); > + trace_dpu_rm_reserve_intf(iter.blk->id, iter.blk->type, > + rsvp->enc_id); > break; > } > > @@ -801,7 +801,6 @@ static int _dpu_rm_populate_requirements( > struct dpu_rm_requirements *reqs, > struct msm_display_topology req_topology) > { > - const struct drm_display_mode *mode = &crtc_state->mode; > int i; > > memset(reqs, 0, sizeof(*reqs)); > @@ -830,15 +829,12 @@ static int _dpu_rm_populate_requirements( > conn_state->connector->connector_type == DRM_MODE_CONNECTOR_DSI) > reqs->top_ctrl |= BIT(DPU_RM_TOPCTL_DS); > > - DPU_DEBUG("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl, > - reqs->hw_res.display_num_of_h_tiles); > - DPU_DEBUG("num_lm: %d num_ctl: %d topology: %d split_display: %d\n", > - reqs->topology->num_lm, reqs->topology->num_ctl, > - reqs->topology->top_name, > - reqs->topology->needs_split_display); > - DPU_EVT32(mode->hdisplay, rm->lm_max_width, reqs->topology->num_lm, > - reqs->top_ctrl, reqs->topology->top_name, > - reqs->topology->num_ctl); > + DRM_DEBUG_KMS("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl, > + reqs->hw_res.display_num_of_h_tiles); > + DRM_DEBUG_KMS("num_lm: %d num_ctl: %d topology: %d split_display: > %d\n", > + reqs->topology->num_lm, reqs->topology->num_ctl, > + reqs->topology->top_name, > + reqs->topology->needs_split_display); > > return 0; > } > @@ -972,11 +968,9 @@ static int _dpu_rm_commit_rsvp( > } > } > > - if (!ret) { > - DPU_DEBUG("rsrv enc %d topology %d\n", rsvp->enc_id, > - rsvp->topology); > - DPU_EVT32(rsvp->enc_id, rsvp->topology); > - } > + if (!ret) > + DRM_DEBUG_KMS("rsrv enc %d topology %d\n", rsvp->enc_id, > + rsvp->topology); > > return ret; > } > @@ -1002,10 +996,9 @@ int dpu_rm_reserve( > if (!drm_atomic_crtc_needs_modeset(crtc_state)) > return 0; > > - DPU_DEBUG("reserving hw for conn %d enc %d crtc %d test_only %d\n", > - conn_state->connector->base.id, enc->base.id, > - crtc_state->crtc->base.id, test_only); > - DPU_EVT32(enc->base.id, conn_state->connector->base.id); > + DRM_DEBUG_KMS("reserving hw for conn %d enc %d crtc %d test_only > %d\n", > + conn_state->connector->base.id, enc->base.id, > + crtc_state->crtc->base.id, test_only); > > mutex_lock(&rm->rm_lock); > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h > b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h > index 5d3aa5a994be..99c45b8d84c0 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h > @@ -769,6 +769,55 @@ TRACE_EVENT(dpu_plane_disable, > __entry->multirect_mode) > ); > > +DECLARE_EVENT_CLASS(dpu_rm_iter_template, > + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), > + TP_ARGS(id, type, enc_id), > + TP_STRUCT__entry( > + __field( uint32_t, id ) > + __field( enum dpu_hw_blk_type, type ) > + __field( uint32_t, enc_id ) > + ), > + TP_fast_assign( > + __entry->id = id; > + __entry->type = type; > + __entry->enc_id = enc_id; > + ), > + TP_printk("id:%d type:%d enc_id:%u", __entry->id, __entry->type, > + __entry->enc_id) > +); > +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_cdm, > + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), > + TP_ARGS(id, type, enc_id) > +); > +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, > + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), > + TP_ARGS(id, type, enc_id) > +); > +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, > + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), > + TP_ARGS(id, type, enc_id) > +); > + > +TRACE_EVENT(dpu_rm_reserve_lms, > + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id, > + uint32_t pp_id), > + TP_ARGS(id, type, enc_id, pp_id), > + TP_STRUCT__entry( > + __field( uint32_t, id ) > + __field( enum dpu_hw_blk_type, type ) > + __field( uint32_t, enc_id ) > + __field( uint32_t, pp_id ) > + ), > + TP_fast_assign( > + __entry->id = id; > + __entry->type = type; > + __entry->enc_id = enc_id; > + __entry->pp_id = pp_id; > + ), > + TP_printk("id:%d type:%d enc_id:%u pp_id:%u", __entry->id, > + __entry->type, __entry->enc_id, __entry->pp_id) > +); > + > #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, > name, 0) > #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, > name, 1) > #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__) -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c index eff316bb2134..13c0a36d4ef9 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c @@ -20,6 +20,7 @@ #include "dpu_hw_pingpong.h" #include "dpu_hw_intf.h" #include "dpu_encoder.h" +#include "dpu_trace.h" #define RESERVED_BY_OTHER(h, r) \ ((h)->rsvp && ((h)->rsvp->enc_id != (r)->enc_id)) @@ -121,9 +122,8 @@ static void _dpu_rm_print_rsvps( DPU_DEBUG("%d\n", stage); list_for_each_entry(rsvp, &rm->rsvps, list) { - DPU_DEBUG("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq, - rsvp->enc_id, rsvp->topology); - DPU_EVT32(stage, rsvp->seq, rsvp->enc_id, rsvp->topology); + DRM_DEBUG_KMS("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq, + rsvp->enc_id, rsvp->topology); } for (type = 0; type < DPU_HW_BLK_MAX; type++) { @@ -131,14 +131,7 @@ static void _dpu_rm_print_rsvps( if (!blk->rsvp && !blk->rsvp_nxt) continue; - DPU_DEBUG("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage, - (blk->rsvp) ? blk->rsvp->seq : 0, - (blk->rsvp) ? blk->rsvp->enc_id : 0, - (blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0, - (blk->rsvp_nxt) ? blk->rsvp_nxt->enc_id : 0, - blk->type, blk->id); - - DPU_EVT32(stage, + DRM_DEBUG_KMS("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage, (blk->rsvp) ? blk->rsvp->seq : 0, (blk->rsvp) ? blk->rsvp->enc_id : 0, (blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0, @@ -597,7 +590,8 @@ static int _dpu_rm_reserve_lms( lm[i]->rsvp_nxt = rsvp; pp[i]->rsvp_nxt = rsvp; - DPU_EVT32(lm[i]->type, rsvp->enc_id, lm[i]->id, pp[i]->id); + trace_dpu_rm_reserve_lms(lm[i]->id, lm[i]->type, rsvp->enc_id, + pp[i]->id); } return rc; @@ -642,7 +636,8 @@ static int _dpu_rm_reserve_ctls( for (i = 0; i < ARRAY_SIZE(ctls) && i < top->num_ctl; i++) { ctls[i]->rsvp_nxt = rsvp; - DPU_EVT32(ctls[i]->type, rsvp->enc_id, ctls[i]->id); + trace_dpu_rm_reserve_ctls(ctls[i]->id, ctls[i]->type, + rsvp->enc_id); } return 0; @@ -656,6 +651,8 @@ static int _dpu_rm_reserve_cdm( { struct dpu_rm_hw_iter iter; + DRM_DEBUG_KMS("type %d id %d\n", type, id); + dpu_rm_init_hw_iter(&iter, 0, DPU_HW_BLK_CDM); while (_dpu_rm_get_hw_locked(rm, &iter)) { const struct dpu_hw_cdm *cdm = to_dpu_hw_cdm(iter.blk->hw); @@ -668,14 +665,16 @@ static int _dpu_rm_reserve_cdm( if (type == DPU_HW_BLK_INTF && id != INTF_MAX) match = test_bit(id, &caps->intf_connect); - DPU_DEBUG("type %d id %d, cdm intfs %lu match %d\n", - type, id, caps->intf_connect, match); + DRM_DEBUG_KMS("iter: type:%d id:%d enc:%d cdm:%lu match:%d\n", + iter.blk->type, iter.blk->id, rsvp->enc_id, + caps->intf_connect, match); if (!match) continue; + trace_dpu_rm_reserve_cdm(iter.blk->id, iter.blk->type, + rsvp->enc_id); iter.blk->rsvp_nxt = rsvp; - DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id); break; } @@ -709,7 +708,8 @@ static int _dpu_rm_reserve_intf( } iter.blk->rsvp_nxt = rsvp; - DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id); + trace_dpu_rm_reserve_intf(iter.blk->id, iter.blk->type, + rsvp->enc_id); break; } @@ -801,7 +801,6 @@ static int _dpu_rm_populate_requirements( struct dpu_rm_requirements *reqs, struct msm_display_topology req_topology) { - const struct drm_display_mode *mode = &crtc_state->mode; int i; memset(reqs, 0, sizeof(*reqs)); @@ -830,15 +829,12 @@ static int _dpu_rm_populate_requirements( conn_state->connector->connector_type == DRM_MODE_CONNECTOR_DSI) reqs->top_ctrl |= BIT(DPU_RM_TOPCTL_DS); - DPU_DEBUG("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl, - reqs->hw_res.display_num_of_h_tiles); - DPU_DEBUG("num_lm: %d num_ctl: %d topology: %d split_display: %d\n", - reqs->topology->num_lm, reqs->topology->num_ctl, - reqs->topology->top_name, - reqs->topology->needs_split_display); - DPU_EVT32(mode->hdisplay, rm->lm_max_width, reqs->topology->num_lm, - reqs->top_ctrl, reqs->topology->top_name, - reqs->topology->num_ctl); + DRM_DEBUG_KMS("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl, + reqs->hw_res.display_num_of_h_tiles); + DRM_DEBUG_KMS("num_lm: %d num_ctl: %d topology: %d split_display: %d\n", + reqs->topology->num_lm, reqs->topology->num_ctl, + reqs->topology->top_name, + reqs->topology->needs_split_display); return 0; } @@ -972,11 +968,9 @@ static int _dpu_rm_commit_rsvp( } } - if (!ret) { - DPU_DEBUG("rsrv enc %d topology %d\n", rsvp->enc_id, - rsvp->topology); - DPU_EVT32(rsvp->enc_id, rsvp->topology); - } + if (!ret) + DRM_DEBUG_KMS("rsrv enc %d topology %d\n", rsvp->enc_id, + rsvp->topology); return ret; } @@ -1002,10 +996,9 @@ int dpu_rm_reserve( if (!drm_atomic_crtc_needs_modeset(crtc_state)) return 0; - DPU_DEBUG("reserving hw for conn %d enc %d crtc %d test_only %d\n", - conn_state->connector->base.id, enc->base.id, - crtc_state->crtc->base.id, test_only); - DPU_EVT32(enc->base.id, conn_state->connector->base.id); + DRM_DEBUG_KMS("reserving hw for conn %d enc %d crtc %d test_only %d\n", + conn_state->connector->base.id, enc->base.id, + crtc_state->crtc->base.id, test_only); mutex_lock(&rm->rm_lock); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h index 5d3aa5a994be..99c45b8d84c0 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h @@ -769,6 +769,55 @@ TRACE_EVENT(dpu_plane_disable, __entry->multirect_mode) ); +DECLARE_EVENT_CLASS(dpu_rm_iter_template, + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), + TP_ARGS(id, type, enc_id), + TP_STRUCT__entry( + __field( uint32_t, id ) + __field( enum dpu_hw_blk_type, type ) + __field( uint32_t, enc_id ) + ), + TP_fast_assign( + __entry->id = id; + __entry->type = type; + __entry->enc_id = enc_id; + ), + TP_printk("id:%d type:%d enc_id:%u", __entry->id, __entry->type, + __entry->enc_id) +); +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_cdm, + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), + TP_ARGS(id, type, enc_id) +); +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), + TP_ARGS(id, type, enc_id) +); +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), + TP_ARGS(id, type, enc_id) +); + +TRACE_EVENT(dpu_rm_reserve_lms, + TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id, + uint32_t pp_id), + TP_ARGS(id, type, enc_id, pp_id), + TP_STRUCT__entry( + __field( uint32_t, id ) + __field( enum dpu_hw_blk_type, type ) + __field( uint32_t, enc_id ) + __field( uint32_t, pp_id ) + ), + TP_fast_assign( + __entry->id = id; + __entry->type = type; + __entry->enc_id = enc_id; + __entry->pp_id = pp_id; + ), + TP_printk("id:%d type:%d enc_id:%u pp_id:%u", __entry->id, + __entry->type, __entry->enc_id, __entry->pp_id) +); + #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__)
This patch converts all DPU_EVTs in dpu_rm with either a DRM_* log message or a linux tracepoint. Signed-off-by: Sean Paul <seanpaul@chromium.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 65 ++++++++++------------- drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 49 +++++++++++++++++ 2 files changed, 78 insertions(+), 36 deletions(-)