Re: [PATCH v6 19/19] drm/msm/dpu: add wb_idx to DRM traces in dpu_encoder

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dmitry

Thanks for fixing it up.

I agree about the indentation issue.

And yes even wb_idx missing in TP_ARGS seems like a geniune miss.

But the weird part is it did not break my compilation. I tested even now without your fix.

Am I missing something to be enabled in my config to replicate the error for future reference?

Thanks

Abhinav
On 4/27/2022 3:43 AM, Dmitry Baryshkov wrote:
On 26/04/2022 17:41, Abhinav Kumar wrote:
Change the DRM traces to include both the intf_mode
and wb_idx similar to the DRM prints in the previous change.

Signed-off-by: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>

This commit got traces broken. I'm going to apply a fix.

---
  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 13 ++++++++-----
  drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h   | 26 ++++++++++++++++++--------
  2 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
index 35080c4..52516eb 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -1354,8 +1354,9 @@ static void dpu_encoder_frame_done_callback(
               * suppress frame_done without waiter,
               * likely autorefresh
               */
-            trace_dpu_enc_frame_done_cb_not_busy(DRMID(drm_enc),
-                    event, ready_phys->intf_idx);
+            trace_dpu_enc_frame_done_cb_not_busy(DRMID(drm_enc), event,
+ dpu_encoder_helper_get_intf_type(ready_phys->intf_mode),
+                    ready_phys->intf_idx, ready_phys->wb_idx);
              return;
          }
@@ -1433,9 +1434,11 @@ static void _dpu_encoder_trigger_flush(struct drm_encoder *drm_enc,
      if (ctl->ops.get_pending_flush)
          ret = ctl->ops.get_pending_flush(ctl);
-    trace_dpu_enc_trigger_flush(DRMID(drm_enc), phys->intf_idx,
-                    pending_kickoff_cnt, ctl->idx,
-                    extra_flush_bits, ret);
+    trace_dpu_enc_trigger_flush(DRMID(drm_enc),
+            dpu_encoder_helper_get_intf_type(phys->intf_mode),
+            phys->intf_idx, phys->wb_idx,
+            pending_kickoff_cnt, ctl->idx,
+            extra_flush_bits, ret);
  }
  /**
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
index 58b411f..1106d44 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
@@ -380,20 +380,26 @@ TRACE_EVENT(dpu_enc_rc,
  );
  TRACE_EVENT(dpu_enc_frame_done_cb_not_busy,
-    TP_PROTO(uint32_t drm_id, u32 event, enum dpu_intf intf_idx),
-    TP_ARGS(drm_id, event, intf_idx),
+    TP_PROTO(uint32_t drm_id, u32 event, char *intf_mode, enum dpu_intf intf_idx,
+            enum dpu_wb wb_idx),
+    TP_ARGS(drm_id, event, intf_mode, intf_idx, wb_idx),
      TP_STRUCT__entry(
          __field(    uint32_t,    drm_id        )
          __field(    u32,        event        )
+        __string(    intf_mode_str,        intf_mode    )
          __field(    enum dpu_intf,    intf_idx    )
+        __field(    enum dpu_wb,  wb_idx    )

Nit: indentation broken. Please use tabs.

      ),
      TP_fast_assign(
          __entry->drm_id = drm_id;
          __entry->event = event;
+        __assign_str(intf_mode_str, intf_mode);
          __entry->intf_idx = intf_idx;
+        __entry->wb_idx = wb_idx;
      ),
-    TP_printk("id=%u, event=%u, intf=%d", __entry->drm_id, __entry->event,
-          __entry->intf_idx)
+    TP_printk("id=%u, event=%u, intf_mode=%s intf=%d wb=%d", __entry->drm_id,
+            __entry->event, __get_str(intf_mode_str),
+            __entry->intf_idx, __entry->wb_idx)
  );
  TRACE_EVENT(dpu_enc_frame_done_cb,
@@ -415,14 +421,16 @@ TRACE_EVENT(dpu_enc_frame_done_cb,
  );
  TRACE_EVENT(dpu_enc_trigger_flush,
-    TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx,
+    TP_PROTO(uint32_t drm_id, char *intf_mode, enum dpu_intf intf_idx, enum dpu_wb wb_idx,
           int pending_kickoff_cnt, int ctl_idx, u32 extra_flush_bits,
           u32 pending_flush_ret),
-    TP_ARGS(drm_id, intf_idx, pending_kickoff_cnt, ctl_idx,
+    TP_ARGS(drm_id, intf_mode, intf_idx, pending_kickoff_cnt, ctl_idx,
          extra_flush_bits, pending_flush_ret),

wb_idx is missing from the TP_ARGS, so compilation fails.

      TP_STRUCT__entry(
          __field(    uint32_t,    drm_id            )
+        __string(    intf_mode_str,    intf_mode    )
          __field(    enum dpu_intf,    intf_idx        )
+        __field(    enum dpu_wb,  wb_idx        )

Nit: indentation broken. Please use tabs.

          __field(    int,        pending_kickoff_cnt    )
          __field(    int,        ctl_idx            )
          __field(    u32,        extra_flush_bits    )
@@ -430,15 +438,17 @@ TRACE_EVENT(dpu_enc_trigger_flush,
      ),
      TP_fast_assign(
          __entry->drm_id = drm_id;
+        __assign_str(intf_mode_str, intf_mode);
          __entry->intf_idx = intf_idx;
+        __entry->wb_idx = wb_idx;
          __entry->pending_kickoff_cnt = pending_kickoff_cnt;
          __entry->ctl_idx = ctl_idx;
          __entry->extra_flush_bits = extra_flush_bits;
          __entry->pending_flush_ret = pending_flush_ret;
      ),
-    TP_printk("id=%u, intf_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d "
+    TP_printk("id=%u, intf_mode=%s, intf_idx=%d, wb_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d "
            "extra_flush_bits=0x%x pending_flush_ret=0x%x",
-          __entry->drm_id, __entry->intf_idx,
+          __entry->drm_id, __get_str(intf_mode_str), __entry->intf_idx, __entry->wb_idx,
            __entry->pending_kickoff_cnt, __entry->ctl_idx,
            __entry->extra_flush_bits, __entry->pending_flush_ret)
  );





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux