From: Ville Syrjälä <[email protected]>

Include dev_name() in the tracpoints so one can filter based on
the device.

Example:
echo 'dev=="0000:00:02.0"' > events/i915/intel_cpu_fifo_underrun/filter

TODO: maybe don't both specifying the field name always and just
      make it 'dev' (or whatever) always?
TODO: add for other tracpoints too if this is deemed good enough

Suggested-by: Chris Wilson <[email protected]>
Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/i915_trace.h | 96 +++++++++++++++++++++----------
 1 file changed, 65 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_trace.h 
b/drivers/gpu/drm/i915/i915_trace.h
index 7ef7a1e1664c..8931b6756f44 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -20,11 +20,18 @@
 
 /* watermark/fifo updates */
 
+#define __dev_name_i915(field, i915) __string(field, dev_name((i915)->drm.dev))
+#define __dev_name_crtc(field, crtc) __string(field, 
dev_name((crtc)->base.dev->dev))
+#define __assign_dev_name_i915(field, i915) __assign_str(field, 
dev_name((i915)->drm.dev))
+#define __assign_dev_name_crtc(field, crtc) __assign_str(field, 
dev_name((crtc)->base.dev->dev))
+#define __get_dev_name(field) __get_str(field)
+
 TRACE_EVENT(intel_pipe_enable,
            TP_PROTO(struct intel_crtc *crtc),
            TP_ARGS(crtc),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __array(u32, frame, 3)
                             __array(u32, scanline, 3)
                             __field(enum pipe, pipe)
@@ -32,6 +39,7 @@ TRACE_EVENT(intel_pipe_enable,
            TP_fast_assign(
                           struct drm_i915_private *dev_priv = 
to_i915(crtc->base.dev);
                           struct intel_crtc *it__;
+                          __assign_dev_name_crtc(dev, crtc);
                           for_each_intel_crtc(&dev_priv->drm, it__) {
                                   __entry->frame[it__->pipe] = 
intel_crtc_get_vblank_counter(it__);
                                   __entry->scanline[it__->pipe] = 
intel_get_crtc_scanline(it__);
@@ -39,8 +47,8 @@ TRACE_EVENT(intel_pipe_enable,
                           __entry->pipe = crtc->pipe;
                           ),
 
-           TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: 
frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-                     pipe_name(__entry->pipe),
+           TP_printk("dev %s, pipe %c enable, pipe A: frame=%u, scanline=%u, 
pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe),
                      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
                      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
                      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
@@ -51,6 +59,7 @@ TRACE_EVENT(intel_pipe_disable,
            TP_ARGS(crtc),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __array(u32, frame, 3)
                             __array(u32, scanline, 3)
                             __field(enum pipe, pipe)
@@ -59,6 +68,7 @@ TRACE_EVENT(intel_pipe_disable,
            TP_fast_assign(
                           struct drm_i915_private *dev_priv = 
to_i915(crtc->base.dev);
                           struct intel_crtc *it__;
+                          __assign_dev_name_crtc(dev, crtc);
                           for_each_intel_crtc(&dev_priv->drm, it__) {
                                   __entry->frame[it__->pipe] = 
intel_crtc_get_vblank_counter(it__);
                                   __entry->scanline[it__->pipe] = 
intel_get_crtc_scanline(it__);
@@ -66,8 +76,8 @@ TRACE_EVENT(intel_pipe_disable,
                           __entry->pipe = crtc->pipe;
                           ),
 
-           TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: 
frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-                     pipe_name(__entry->pipe),
+           TP_printk("dev %s, pipe %c disable, pipe A: frame=%u, scanline=%u, 
pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe),
                      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
                      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
                      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
@@ -78,6 +88,7 @@ TRACE_EVENT(intel_pipe_crc,
            TP_ARGS(crtc, crcs),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -85,14 +96,15 @@ TRACE_EVENT(intel_pipe_crc,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x 
%08x",
-                     pipe_name(__entry->pipe), __entry->frame, 
__entry->scanline,
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u crc=%08x %08x 
%08x %08x %08x",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame, __entry->scanline,
                      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
                      __entry->crcs[3], __entry->crcs[4])
 );
@@ -102,20 +114,22 @@ TRACE_EVENT(intel_cpu_fifo_underrun,
            TP_ARGS(dev_priv, pipe),
 
            TP_STRUCT__entry(
+                            __dev_name_i915(dev, dev_priv)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
 
            TP_fast_assign(
-                           struct intel_crtc *crtc = 
intel_get_crtc_for_pipe(dev_priv, pipe);
+                          struct intel_crtc *crtc = 
intel_get_crtc_for_pipe(dev_priv, pipe);
+                          __assign_dev_name_i915(dev, dev_priv);
                           __entry->pipe = pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u",
-                     pipe_name(__entry->pipe),
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe),
                      __entry->frame, __entry->scanline)
 );
 
@@ -124,6 +138,7 @@ TRACE_EVENT(intel_pch_fifo_underrun,
            TP_ARGS(dev_priv, pch_transcoder),
 
            TP_STRUCT__entry(
+                            __dev_name_i915(dev, dev_priv)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -132,13 +147,14 @@ TRACE_EVENT(intel_pch_fifo_underrun,
            TP_fast_assign(
                           enum pipe pipe = pch_transcoder;
                           struct intel_crtc *crtc = 
intel_get_crtc_for_pipe(dev_priv, pipe);
+                          __assign_dev_name_i915(dev, dev_priv);
                           __entry->pipe = pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
-           TP_printk("pch transcoder %c, frame=%u, scanline=%u",
-                     pipe_name(__entry->pipe),
+           TP_printk("dev %s, pch transcoder %c, frame=%u, scanline=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe),
                      __entry->frame, __entry->scanline)
 );
 
@@ -147,6 +163,7 @@ TRACE_EVENT(intel_memory_cxsr,
            TP_ARGS(dev_priv, old, new),
 
            TP_STRUCT__entry(
+                            __dev_name_i915(dev, dev_priv)
                             __array(u32, frame, 3)
                             __array(u32, scanline, 3)
                             __field(bool, old)
@@ -155,6 +172,7 @@ TRACE_EVENT(intel_memory_cxsr,
 
            TP_fast_assign(
                           struct intel_crtc *crtc;
+                          __assign_dev_name_i915(dev, dev_priv);
                           for_each_intel_crtc(&dev_priv->drm, crtc) {
                                   __entry->frame[crtc->pipe] = 
intel_crtc_get_vblank_counter(crtc);
                                   __entry->scanline[crtc->pipe] = 
intel_get_crtc_scanline(crtc);
@@ -163,8 +181,8 @@ TRACE_EVENT(intel_memory_cxsr,
                           __entry->new = new;
                           ),
 
-           TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, 
scanline=%u, pipe C: frame=%u, scanline=%u",
-                     onoff(__entry->old), onoff(__entry->new),
+           TP_printk("dev %s, %s->%s, pipe A: frame=%u, scanline=%u, pipe B: 
frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
+                     __get_dev_name(dev), onoff(__entry->old), 
onoff(__entry->new),
                      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
                      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
                      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
@@ -175,6 +193,7 @@ TRACE_EVENT(g4x_wm,
            TP_ARGS(crtc, wm),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -193,6 +212,7 @@ TRACE_EVENT(g4x_wm,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
@@ -210,8 +230,8 @@ TRACE_EVENT(g4x_wm,
                           __entry->fbc = wm->fbc_en;
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr 
%s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
-                     pipe_name(__entry->pipe), __entry->frame, 
__entry->scanline,
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr 
%s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame, __entry->scanline,
                      __entry->primary, __entry->sprite, __entry->cursor,
                      yesno(__entry->cxsr), __entry->sr_plane, 
__entry->sr_cursor, __entry->sr_fbc,
                      yesno(__entry->hpll), __entry->hpll_plane, 
__entry->hpll_cursor, __entry->hpll_fbc,
@@ -223,6 +243,7 @@ TRACE_EVENT(vlv_wm,
            TP_ARGS(crtc, wm),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -237,6 +258,7 @@ TRACE_EVENT(vlv_wm,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
@@ -250,8 +272,8 @@ TRACE_EVENT(vlv_wm,
                           __entry->sr_cursor = wm->sr.cursor;
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm 
%d/%d/%d/%d, sr %d/%d",
-                     pipe_name(__entry->pipe), __entry->frame,
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, level=%d, 
cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame,
                      __entry->scanline, __entry->level, __entry->cxsr,
                      __entry->primary, __entry->sprite0, __entry->sprite1, 
__entry->cursor,
                      __entry->sr_plane, __entry->sr_cursor)
@@ -262,6 +284,7 @@ TRACE_EVENT(vlv_fifo_size,
            TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -271,6 +294,7 @@ TRACE_EVENT(vlv_fifo_size,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
@@ -279,8 +303,8 @@ TRACE_EVENT(vlv_fifo_size,
                           __entry->fifo_size = fifo_size;
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
-                     pipe_name(__entry->pipe), __entry->frame,
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, %d/%d/%d",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame,
                      __entry->scanline, __entry->sprite0_start,
                      __entry->sprite1_start, __entry->fifo_size)
 );
@@ -292,6 +316,7 @@ TRACE_EVENT(intel_update_plane,
            TP_ARGS(plane, crtc),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -301,6 +326,7 @@ TRACE_EVENT(intel_update_plane,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __assign_str(name, plane->name);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
@@ -309,8 +335,8 @@ TRACE_EVENT(intel_update_plane,
                           memcpy(__entry->dst, &plane->state->dst, 
sizeof(__entry->dst));
                           ),
 
-           TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " 
DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
-                     pipe_name(__entry->pipe), __get_str(name),
+           TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u, " 
DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__get_str(name),
                      __entry->frame, __entry->scanline,
                      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
                      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
@@ -321,6 +347,7 @@ TRACE_EVENT(intel_disable_plane,
            TP_ARGS(plane, crtc),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -328,14 +355,15 @@ TRACE_EVENT(intel_disable_plane,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __assign_str(name, plane->name);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
-           TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
-                     pipe_name(__entry->pipe), __get_str(name),
+           TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__get_str(name),
                      __entry->frame, __entry->scanline)
 );
 
@@ -346,6 +374,7 @@ TRACE_EVENT(i915_pipe_update_start,
            TP_ARGS(crtc),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -354,6 +383,7 @@ TRACE_EVENT(i915_pipe_update_start,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
@@ -361,9 +391,9 @@ TRACE_EVENT(i915_pipe_update_start,
                           __entry->max = crtc->debug.max_vbl;
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
-                     pipe_name(__entry->pipe), __entry->frame,
-                      __entry->scanline, __entry->min, __entry->max)
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame,
+                     __entry->scanline, __entry->min, __entry->max)
 );
 
 TRACE_EVENT(i915_pipe_update_vblank_evaded,
@@ -371,6 +401,7 @@ TRACE_EVENT(i915_pipe_update_vblank_evaded,
            TP_ARGS(crtc),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
@@ -379,6 +410,7 @@ TRACE_EVENT(i915_pipe_update_vblank_evaded,
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = crtc->debug.start_vbl_count;
                           __entry->scanline = crtc->debug.scanline_start;
@@ -386,9 +418,9 @@ TRACE_EVENT(i915_pipe_update_vblank_evaded,
                           __entry->max = crtc->debug.max_vbl;
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
-                     pipe_name(__entry->pipe), __entry->frame,
-                      __entry->scanline, __entry->min, __entry->max)
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame,
+                     __entry->scanline, __entry->min, __entry->max)
 );
 
 TRACE_EVENT(i915_pipe_update_end,
@@ -396,19 +428,21 @@ TRACE_EVENT(i915_pipe_update_end,
            TP_ARGS(crtc, frame, scanline_end),
 
            TP_STRUCT__entry(
+                            __dev_name_crtc(dev, crtc)
                             __field(enum pipe, pipe)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
 
            TP_fast_assign(
+                          __assign_dev_name_crtc(dev, crtc);
                           __entry->pipe = crtc->pipe;
                           __entry->frame = frame;
                           __entry->scanline = scanline_end;
                           ),
 
-           TP_printk("pipe %c, frame=%u, scanline=%u",
-                     pipe_name(__entry->pipe), __entry->frame,
+           TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
+                     __get_dev_name(dev), pipe_name(__entry->pipe), 
__entry->frame,
                      __entry->scanline)
 );
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to