All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] drm/i915: Add pipe crc tracepoint
@ 2019-02-06 20:49 Ville Syrjala
  2019-02-06 20:49 ` [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints Ville Syrjala
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Ville Syrjala @ 2019-02-06 20:49 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a tracepoint for pipe crc. Makes life much simpler when staring at
traces when hunting for fifo underruns and other issues which cause
corrupted frames. We'll add the tracepoint before filtering out any
potentially bogus crcs during modeset (should actually verify if that
filtering is even correct anymore...)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c   |  9 +++------
 drivers/gpu/drm/i915/i915_trace.h | 25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 441d2674b272..92bb32ed27fb 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1693,7 +1693,9 @@ static void display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
 {
 	struct intel_pipe_crc *pipe_crc = &dev_priv->pipe_crc[pipe];
 	struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
-	u32 crcs[5];
+	u32 crcs[5] = { crc0, crc1, crc2, crc3, crc4 };
+
+	trace_intel_pipe_crc(crtc, crcs);
 
 	spin_lock(&pipe_crc->lock);
 	/*
@@ -1712,11 +1714,6 @@ static void display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
 	}
 	spin_unlock(&pipe_crc->lock);
 
-	crcs[0] = crc0;
-	crcs[1] = crc1;
-	crcs[2] = crc2;
-	crcs[3] = crc3;
-	crcs[4] = crc4;
 	drm_crtc_add_crc_entry(&crtc->base, true,
 				drm_crtc_accurate_vblank_count(&crtc->base),
 				crcs);
diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
index eab313c3163c..308d36926335 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -18,6 +18,31 @@
 
 /* watermark/fifo updates */
 
+TRACE_EVENT(intel_pipe_crc,
+	    TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
+	    TP_ARGS(crtc, crcs),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __array(u32, crcs, 5)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = crtc->base.dev->driver->get_vblank_counter(crtc->base.dev,
+										       crtc->pipe);
+			   __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,
+		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
+		      __entry->crcs[3], __entry->crcs[4])
+);
+
 TRACE_EVENT(intel_cpu_fifo_underrun,
 	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
 	    TP_ARGS(dev_priv, pipe),
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
@ 2019-02-06 20:49 ` Ville Syrjala
  2019-02-13 17:41   ` Rodrigo Vivi
  2019-02-06 20:49 ` [PATCH 3/4] drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes() Ville Syrjala
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjala @ 2019-02-06 20:49 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add tracepoints for pipe enable/disable. We'll include the
frame/scanline counters for all pipes in these tracepoints to
help in diagnosing underruns and whatnot when enabling/disabling
pipes in parallel with plane updates/flips on another pipe.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_trace.h    | 56 ++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_display.c |  4 ++
 2 files changed, 60 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
index 308d36926335..96dfe651ffd0 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -18,6 +18,62 @@
 
 /* watermark/fifo updates */
 
+TRACE_EVENT(intel_pipe_enable,
+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
+	    TP_ARGS(dev_priv, pipe),
+
+	    TP_STRUCT__entry(
+			     __array(u32, frame, 3)
+			     __array(u32, scanline, 3)
+			     __field(enum pipe, pipe)
+			     ),
+
+	    TP_fast_assign(
+			   enum pipe _pipe;
+			   for_each_pipe(dev_priv, _pipe) {
+				   __entry->frame[_pipe] =
+					   dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, _pipe);
+				   __entry->scanline[_pipe] =
+					   intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, _pipe));
+			   }
+			   __entry->pipe = 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),
+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
+);
+
+TRACE_EVENT(intel_pipe_disable,
+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
+	    TP_ARGS(dev_priv, pipe),
+
+	    TP_STRUCT__entry(
+			     __array(u32, frame, 3)
+			     __array(u32, scanline, 3)
+			     __field(enum pipe, pipe)
+			     ),
+
+	    TP_fast_assign(
+			   enum pipe _pipe;
+			   for_each_pipe(dev_priv, _pipe) {
+				   __entry->frame[_pipe] =
+					   dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, _pipe);
+				   __entry->scanline[_pipe] =
+					   intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, _pipe));
+			   }
+			   __entry->pipe = 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),
+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
+);
+
 TRACE_EVENT(intel_pipe_crc,
 	    TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
 	    TP_ARGS(crtc, crcs),
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 4d5ec929f987..4e3ea2d1a880 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1821,6 +1821,8 @@ static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
 		/* FIXME: assert CPU port conditions for SNB+ */
 	}
 
+	trace_intel_pipe_enable(dev_priv, pipe);
+
 	reg = PIPECONF(cpu_transcoder);
 	val = I915_READ(reg);
 	if (val & PIPECONF_ENABLE) {
@@ -1860,6 +1862,8 @@ static void intel_disable_pipe(const struct intel_crtc_state *old_crtc_state)
 	 */
 	assert_planes_disabled(crtc);
 
+	trace_intel_pipe_disable(dev_priv, pipe);
+
 	reg = PIPECONF(cpu_transcoder);
 	val = I915_READ(reg);
 	if ((val & PIPECONF_ENABLE) == 0)
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/4] drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes()
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
  2019-02-06 20:49 ` [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints Ville Syrjala
@ 2019-02-06 20:49 ` Ville Syrjala
  2019-02-13 17:41   ` Rodrigo Vivi
  2019-02-06 20:49 ` [PATCH 4/4] drm/i915: Wrap plane update/disable hook calls Ville Syrjala
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjala @ 2019-02-06 20:49 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

intel_crtc_disable_planes() disables the planes so it should
trigger the appropriate tracepoint.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 4e3ea2d1a880..e404e9000893 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5524,6 +5524,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state,
 		    !(update_mask & BIT(plane->id)))
 			continue;
 
+		trace_intel_disable_plane(&plane->base, crtc);
 		plane->disable_plane(plane, new_crtc_state);
 
 		if (old_plane_state->base.visible)
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/4] drm/i915: Wrap plane update/disable hook calls
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
  2019-02-06 20:49 ` [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints Ville Syrjala
  2019-02-06 20:49 ` [PATCH 3/4] drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes() Ville Syrjala
@ 2019-02-06 20:49 ` Ville Syrjala
  2019-02-13 17:41   ` Rodrigo Vivi
  2019-02-06 21:19 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/4] drm/i915: Add pipe crc tracepoint Patchwork
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjala @ 2019-02-06 20:49 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Wrap the .update_plane()/.update_slave()/.disable_plane() vfunc
calls into helpers which also take care to emit the appropriate
tracepoint.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_atomic_plane.c | 49 +++++++++++++++++------
 drivers/gpu/drm/i915/intel_display.c      | 19 ++++-----
 drivers/gpu/drm/i915/intel_drv.h          |  8 ++++
 3 files changed, 51 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
index a1a263026574..f9fc06017a39 100644
--- a/drivers/gpu/drm/i915/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
@@ -212,6 +212,35 @@ skl_next_plane_to_commit(struct intel_atomic_state *state,
 	return NULL;
 }
 
+void intel_update_plane(struct intel_plane *plane,
+			const struct intel_crtc_state *crtc_state,
+			const struct intel_plane_state *plane_state)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+
+	trace_intel_update_plane(&plane->base, crtc);
+	plane->update_plane(plane, crtc_state, plane_state);
+}
+
+void intel_update_slave(struct intel_plane *plane,
+			const struct intel_crtc_state *crtc_state,
+			const struct intel_plane_state *plane_state)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+
+	trace_intel_update_plane(&plane->base, crtc);
+	plane->update_slave(plane, crtc_state, plane_state);
+}
+
+void intel_disable_plane(struct intel_plane *plane,
+			 const struct intel_crtc_state *crtc_state)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+
+	trace_intel_disable_plane(&plane->base, crtc);
+	plane->disable_plane(plane, crtc_state);
+}
+
 void skl_update_planes_on_crtc(struct intel_atomic_state *state,
 			       struct intel_crtc *crtc)
 {
@@ -236,8 +265,7 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state,
 			intel_atomic_get_new_plane_state(state, plane);
 
 		if (new_plane_state->base.visible) {
-			trace_intel_update_plane(&plane->base, crtc);
-			plane->update_plane(plane, new_crtc_state, new_plane_state);
+			intel_update_plane(plane, new_crtc_state, new_plane_state);
 		} else if (new_plane_state->slave) {
 			struct intel_plane *master =
 				new_plane_state->linked_plane;
@@ -254,11 +282,9 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state,
 			new_plane_state =
 				intel_atomic_get_new_plane_state(state, master);
 
-			trace_intel_update_plane(&plane->base, crtc);
-			plane->update_slave(plane, new_crtc_state, new_plane_state);
+			intel_update_slave(plane, new_crtc_state, new_plane_state);
 		} else {
-			trace_intel_disable_plane(&plane->base, crtc);
-			plane->disable_plane(plane, new_crtc_state);
+			intel_disable_plane(plane, new_crtc_state);
 		}
 	}
 }
@@ -278,13 +304,10 @@ void i9xx_update_planes_on_crtc(struct intel_atomic_state *state,
 		    !(update_mask & BIT(plane->id)))
 			continue;
 
-		if (new_plane_state->base.visible) {
-			trace_intel_update_plane(&plane->base, crtc);
-			plane->update_plane(plane, new_crtc_state, new_plane_state);
-		} else {
-			trace_intel_disable_plane(&plane->base, crtc);
-			plane->disable_plane(plane, new_crtc_state);
-		}
+		if (new_plane_state->base.visible)
+			intel_update_plane(plane, new_crtc_state, new_plane_state);
+		else
+			intel_disable_plane(plane, new_crtc_state);
 	}
 }
 
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e404e9000893..de0e871da8db 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2820,8 +2820,7 @@ static void intel_plane_disable_noatomic(struct intel_crtc *crtc,
 	if (plane->id == PLANE_PRIMARY)
 		intel_pre_disable_primary_noatomic(&crtc->base);
 
-	trace_intel_disable_plane(&plane->base, crtc);
-	plane->disable_plane(plane, crtc_state);
+	intel_disable_plane(plane, crtc_state);
 }
 
 static void
@@ -5524,8 +5523,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state,
 		    !(update_mask & BIT(plane->id)))
 			continue;
 
-		trace_intel_disable_plane(&plane->base, crtc);
-		plane->disable_plane(plane, new_crtc_state);
+		intel_disable_plane(plane, new_crtc_state);
 
 		if (old_plane_state->base.visible)
 			fb_bits |= plane->frontbuffer_bit;
@@ -13937,14 +13935,11 @@ intel_legacy_cursor_update(struct drm_plane *plane,
 	 */
 	crtc_state->active_planes = new_crtc_state->active_planes;
 
-	if (plane->state->visible) {
-		trace_intel_update_plane(plane, to_intel_crtc(crtc));
-		intel_plane->update_plane(intel_plane, crtc_state,
-					  to_intel_plane_state(plane->state));
-	} else {
-		trace_intel_disable_plane(plane, to_intel_crtc(crtc));
-		intel_plane->disable_plane(intel_plane, crtc_state);
-	}
+	if (plane->state->visible)
+		intel_update_plane(intel_plane, crtc_state,
+				   to_intel_plane_state(plane->state));
+	else
+		intel_disable_plane(intel_plane, crtc_state);
 
 	intel_plane_unpin_fb(to_intel_plane_state(old_plane_state));
 
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 90ba5436370e..6093bc34720a 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -2361,6 +2361,14 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
 			       struct intel_crtc_state *crtc_state);
 
 /* intel_atomic_plane.c */
+void intel_update_plane(struct intel_plane *plane,
+			const struct intel_crtc_state *crtc_state,
+			const struct intel_plane_state *plane_state);
+void intel_update_slave(struct intel_plane *plane,
+			const struct intel_crtc_state *crtc_state,
+			const struct intel_plane_state *plane_state);
+void intel_disable_plane(struct intel_plane *plane,
+			 const struct intel_crtc_state *crtc_state);
 struct intel_plane *intel_plane_alloc(void);
 void intel_plane_free(struct intel_plane *plane);
 struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane);
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/4] drm/i915: Add pipe crc tracepoint
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
                   ` (2 preceding siblings ...)
  2019-02-06 20:49 ` [PATCH 4/4] drm/i915: Wrap plane update/disable hook calls Ville Syrjala
@ 2019-02-06 21:19 ` Patchwork
  2019-02-06 21:49 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2019-02-06 21:19 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] drm/i915: Add pipe crc tracepoint
URL   : https://patchwork.freedesktop.org/series/56309/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
f8b2e309e24f drm/i915: Add pipe crc tracepoint
-:56: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#56: FILE: drivers/gpu/drm/i915/i915_trace.h:25:
+	    TP_STRUCT__entry(

-:63: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#63: FILE: drivers/gpu/drm/i915/i915_trace.h:32:
+	    TP_fast_assign(

-:65: WARNING:LONG_LINE: line over 100 characters
#65: FILE: drivers/gpu/drm/i915/i915_trace.h:34:
+			   __entry->frame = crtc->base.dev->driver->get_vblank_counter(crtc->base.dev,

total: 0 errors, 1 warnings, 2 checks, 52 lines checked
29d00bd8d437 drm/i915: Add pipe enable/disable tracepoints
-:28: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#28: FILE: drivers/gpu/drm/i915/i915_trace.h:25:
+	    TP_STRUCT__entry(

-:34: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#34: FILE: drivers/gpu/drm/i915/i915_trace.h:31:
+	    TP_fast_assign(

-:35: WARNING:TABSTOP: Statements should start on a tabstop
#35: FILE: drivers/gpu/drm/i915/i915_trace.h:32:
+			   enum pipe _pipe;

-:36: WARNING:LINE_SPACING: Missing a blank line after declarations
#36: FILE: drivers/gpu/drm/i915/i915_trace.h:33:
+			   enum pipe _pipe;
+			   for_each_pipe(dev_priv, _pipe) {

-:36: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (27, 35)
#36: FILE: drivers/gpu/drm/i915/i915_trace.h:33:
+			   for_each_pipe(dev_priv, _pipe) {
+				   __entry->frame[_pipe] =

-:38: WARNING:LONG_LINE: line over 100 characters
#38: FILE: drivers/gpu/drm/i915/i915_trace.h:35:
+					   dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, _pipe);

-:40: WARNING:LONG_LINE: line over 100 characters
#40: FILE: drivers/gpu/drm/i915/i915_trace.h:37:
+					   intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, _pipe));

-:41: WARNING:TABSTOP: Statements should start on a tabstop
#41: FILE: drivers/gpu/drm/i915/i915_trace.h:38:
+			   }

-:56: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#56: FILE: drivers/gpu/drm/i915/i915_trace.h:53:
+	    TP_STRUCT__entry(

-:62: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#62: FILE: drivers/gpu/drm/i915/i915_trace.h:59:
+	    TP_fast_assign(

-:63: WARNING:TABSTOP: Statements should start on a tabstop
#63: FILE: drivers/gpu/drm/i915/i915_trace.h:60:
+			   enum pipe _pipe;

-:64: WARNING:LINE_SPACING: Missing a blank line after declarations
#64: FILE: drivers/gpu/drm/i915/i915_trace.h:61:
+			   enum pipe _pipe;
+			   for_each_pipe(dev_priv, _pipe) {

-:64: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (27, 35)
#64: FILE: drivers/gpu/drm/i915/i915_trace.h:61:
+			   for_each_pipe(dev_priv, _pipe) {
+				   __entry->frame[_pipe] =

-:66: WARNING:LONG_LINE: line over 100 characters
#66: FILE: drivers/gpu/drm/i915/i915_trace.h:63:
+					   dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, _pipe);

-:68: WARNING:LONG_LINE: line over 100 characters
#68: FILE: drivers/gpu/drm/i915/i915_trace.h:65:
+					   intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, _pipe));

-:69: WARNING:TABSTOP: Statements should start on a tabstop
#69: FILE: drivers/gpu/drm/i915/i915_trace.h:66:
+			   }

total: 0 errors, 12 warnings, 4 checks, 78 lines checked
06f5e2e68d3e drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes()
8e97647e1728 drm/i915: Wrap plane update/disable hook calls

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with [1/4] drm/i915: Add pipe crc tracepoint
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
                   ` (3 preceding siblings ...)
  2019-02-06 21:19 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/4] drm/i915: Add pipe crc tracepoint Patchwork
@ 2019-02-06 21:49 ` Patchwork
  2019-02-07  1:44 ` ✓ Fi.CI.IGT: " Patchwork
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2019-02-06 21:49 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] drm/i915: Add pipe crc tracepoint
URL   : https://patchwork.freedesktop.org/series/56309/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5555 -> Patchwork_12161
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56309/revisions/1/mbox/

Known issues
------------

  Here are the changes found in Patchwork_12161 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@cs-compute:
    - fi-kbl-8809g:       NOTRUN -> FAIL [fdo#108094]

  * igt@i915_module_load@reload:
    - fi-blb-e6850:       NOTRUN -> INCOMPLETE [fdo#107718]

  * igt@kms_busy@basic-flip-a:
    - fi-gdg-551:         PASS -> FAIL [fdo#103182]

  * igt@kms_frontbuffer_tracking@basic:
    - fi-byt-clapper:     PASS -> FAIL [fdo#103167]

  * igt@pm_rpm@module-reload:
    - fi-skl-6770hq:      PASS -> FAIL [fdo#108511]

  
#### Possible fixes ####

  * igt@amdgpu/amd_basic@userptr:
    - fi-kbl-8809g:       DMESG-WARN [fdo#108965] -> PASS

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       FAIL [fdo#109485] -> PASS

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
    - fi-blb-e6850:       INCOMPLETE [fdo#107718] -> PASS

  * igt@prime_vgem@basic-fence-flip:
    - fi-gdg-551:         FAIL [fdo#103182] -> PASS

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108094]: https://bugs.freedesktop.org/show_bug.cgi?id=108094
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (48 -> 44)
------------------------------

  Additional (1): fi-skl-6700hq 
  Missing    (5): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-y 


Build changes
-------------

    * Linux: CI_DRM_5555 -> Patchwork_12161

  CI_DRM_5555: 32921c0fea5f59e84d71d6bd1c383962a78068ab @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4812: 592b854fead32c2b0dac7198edfb9a6bffd66932 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12161: 8e97647e1728a2850103e83a4a100201d017bfc5 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8e97647e1728 drm/i915: Wrap plane update/disable hook calls
06f5e2e68d3e drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes()
29d00bd8d437 drm/i915: Add pipe enable/disable tracepoints
f8b2e309e24f drm/i915: Add pipe crc tracepoint

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12161/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* ✓ Fi.CI.IGT: success for series starting with [1/4] drm/i915: Add pipe crc tracepoint
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
                   ` (4 preceding siblings ...)
  2019-02-06 21:49 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-02-07  1:44 ` Patchwork
  2019-02-07  5:23 ` [PATCH 1/4] " kbuild test robot
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2019-02-07  1:44 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] drm/i915: Add pipe crc tracepoint
URL   : https://patchwork.freedesktop.org/series/56309/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5555_full -> Patchwork_12161_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Known issues
------------

  Here are the changes found in Patchwork_12161_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_schedule@pi-ringfull-vebox:
    - shard-kbl:          NOTRUN -> FAIL [fdo#103158]

  * igt@gem_fence_thrash@bo-write-verify-threaded-none:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927]

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b:
    - shard-kbl:          NOTRUN -> DMESG-WARN [fdo#107956] +1

  * igt@kms_cursor_crc@cursor-256x85-onscreen:
    - shard-apl:          PASS -> FAIL [fdo#103232] +2

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
    - shard-apl:          PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-apl:          PASS -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_plane@pixel-format-pipe-a-planes:
    - shard-apl:          PASS -> FAIL [fdo#103166]

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-apl:          PASS -> FAIL [fdo#108948]
    - shard-glk:          PASS -> FAIL [fdo#108948]

  * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
    - shard-glk:          PASS -> FAIL [fdo#108145]

  * igt@kms_setmode@basic:
    - shard-apl:          PASS -> FAIL [fdo#99912]

  
#### Possible fixes ####

  * igt@kms_color@pipe-a-ctm-max:
    - shard-apl:          FAIL [fdo#108147] -> PASS

  * igt@kms_cursor_crc@cursor-128x42-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-suspend:
    - shard-glk:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-glk:          FAIL [fdo#109350] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
    - shard-apl:          FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render:
    - shard-glk:          FAIL [fdo#103167] -> PASS

  * igt@kms_setmode@basic:
    - shard-kbl:          FAIL [fdo#99912] -> PASS

  * igt@kms_universal_plane@universal-plane-pipe-a-functional:
    - shard-apl:          FAIL [fdo#103166] -> PASS

  * igt@kms_vblank@pipe-a-wait-busy-hang:
    - shard-glk:          INCOMPLETE [fdo#103359] / [k.org#198133] -> PASS

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103158]: https://bugs.freedesktop.org/show_bug.cgi?id=103158
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


Build changes
-------------

    * Linux: CI_DRM_5555 -> Patchwork_12161

  CI_DRM_5555: 32921c0fea5f59e84d71d6bd1c383962a78068ab @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4812: 592b854fead32c2b0dac7198edfb9a6bffd66932 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12161: 8e97647e1728a2850103e83a4a100201d017bfc5 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12161/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] drm/i915: Add pipe crc tracepoint
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
                   ` (5 preceding siblings ...)
  2019-02-07  1:44 ` ✓ Fi.CI.IGT: " Patchwork
@ 2019-02-07  5:23 ` kbuild test robot
  2019-02-07  6:01 ` kbuild test robot
  2019-02-13 17:40 ` Rodrigo Vivi
  8 siblings, 0 replies; 13+ messages in thread
From: kbuild test robot @ 2019-02-07  5:23 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 13115 bytes --]

Hi Ville,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on next-20190206]
[cannot apply to v5.0-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Ville-Syrjala/drm-i915-Add-pipe-crc-tracepoint/20190207-123120
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-x009-201905 (attached as .config)
compiler: gcc-8 (Debian 8.2.0-14) 8.2.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   In file included from include/trace/define_trace.h:98,
                    from drivers/gpu/drm/i915/i915_trace.h:951,
                    from drivers/gpu/drm/i915/i915_trace_points.c:13:
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h: In function '__bpf_trace_intel_pipe_crc':
>> include/trace/bpf_probe.h:39:17: error: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Werror=sizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:32:35: note: in definition of macro 'UINTTYPE'
     __typeof__(__builtin_choose_expr(size == 1,  (u8)1, \
                                      ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
>> include/trace/bpf_probe.h:39:17: error: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Werror=sizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:33:28: note: in definition of macro 'UINTTYPE'
         __builtin_choose_expr(size == 2, (u16)2, \
                               ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
>> include/trace/bpf_probe.h:39:17: error: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Werror=sizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:34:28: note: in definition of macro 'UINTTYPE'
         __builtin_choose_expr(size == 4, (u32)3, \
                               ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
>> include/trace/bpf_probe.h:39:17: error: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Werror=sizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:35:28: note: in definition of macro 'UINTTYPE'
         __builtin_choose_expr(size == 8, (u64)4, \
                               ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
   cc1: all warnings being treated as errors

vim +39 include/trace/bpf_probe.h

c4f6699d Alexei Starovoitov 2018-03-28  29  
c4f6699d Alexei Starovoitov 2018-03-28  30  /* cast any integer, pointer, or small struct to u64 */
c4f6699d Alexei Starovoitov 2018-03-28  31  #define UINTTYPE(size) \
c4f6699d Alexei Starovoitov 2018-03-28  32  	__typeof__(__builtin_choose_expr(size == 1,  (u8)1, \
c4f6699d Alexei Starovoitov 2018-03-28  33  		   __builtin_choose_expr(size == 2, (u16)2, \
c4f6699d Alexei Starovoitov 2018-03-28  34  		   __builtin_choose_expr(size == 4, (u32)3, \
c4f6699d Alexei Starovoitov 2018-03-28  35  		   __builtin_choose_expr(size == 8, (u64)4, \
c4f6699d Alexei Starovoitov 2018-03-28  36  					 (void)5)))))
c4f6699d Alexei Starovoitov 2018-03-28  37  #define __CAST_TO_U64(x) ({ \
c4f6699d Alexei Starovoitov 2018-03-28  38  	typeof(x) __src = (x); \
c4f6699d Alexei Starovoitov 2018-03-28 @39  	UINTTYPE(sizeof(x)) __dst; \
c4f6699d Alexei Starovoitov 2018-03-28  40  	memcpy(&__dst, &__src, sizeof(__dst)); \
c4f6699d Alexei Starovoitov 2018-03-28  41  	(u64)__dst; })
c4f6699d Alexei Starovoitov 2018-03-28  42  

:::::: The code at line 39 was first introduced by commit
:::::: c4f6699dfcb8558d138fe838f741b2c10f416cf9 bpf: introduce BPF_RAW_TRACEPOINT

:::::: TO: Alexei Starovoitov <ast@kernel.org>
:::::: CC: Daniel Borkmann <daniel@iogearbox.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35652 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] drm/i915: Add pipe crc tracepoint
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
                   ` (6 preceding siblings ...)
  2019-02-07  5:23 ` [PATCH 1/4] " kbuild test robot
@ 2019-02-07  6:01 ` kbuild test robot
  2019-02-13 17:40 ` Rodrigo Vivi
  8 siblings, 0 replies; 13+ messages in thread
From: kbuild test robot @ 2019-02-07  6:01 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 13068 bytes --]

Hi Ville,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on next-20190206]
[cannot apply to v5.0-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Ville-Syrjala/drm-i915-Add-pipe-crc-tracepoint/20190207-123120
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-x001-201905 (attached as .config)
compiler: gcc-8 (Debian 8.2.0-14) 8.2.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   In file included from include/trace/define_trace.h:98,
                    from drivers/gpu/drm/i915/i915_trace.h:951,
                    from drivers/gpu/drm/i915/i915_trace_points.c:13:
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h: In function '__bpf_trace_intel_pipe_crc':
>> include/trace/bpf_probe.h:39:17: warning: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Wsizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:32:35: note: in definition of macro 'UINTTYPE'
     __typeof__(__builtin_choose_expr(size == 1,  (u8)1, \
                                      ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
>> include/trace/bpf_probe.h:39:17: warning: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Wsizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:33:28: note: in definition of macro 'UINTTYPE'
         __builtin_choose_expr(size == 2, (u16)2, \
                               ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
>> include/trace/bpf_probe.h:39:17: warning: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Wsizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:34:28: note: in definition of macro 'UINTTYPE'
         __builtin_choose_expr(size == 4, (u32)3, \
                               ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~
>> include/trace/bpf_probe.h:39:17: warning: 'sizeof' on array function parameter 'crcs' will return size of 'const u32 *' {aka 'const unsigned int *'} [-Wsizeof-array-argument]
     UINTTYPE(sizeof(x)) __dst; \
                    ^
   include/trace/bpf_probe.h:35:28: note: in definition of macro 'UINTTYPE'
         __builtin_choose_expr(size == 8, (u64)4, \
                               ^~~~
   include/trace/bpf_probe.h:43:24: note: in expansion of macro '__CAST_TO_U64'
    #define __CAST1(a,...) __CAST_TO_U64(a)
                           ^~~~~~~~~~~~~
   include/trace/bpf_probe.h:44:42: note: in expansion of macro '__CAST1'
    #define __CAST2(a,...) __CAST_TO_U64(a), __CAST1(__VA_ARGS__)
                                             ^~~~~~~
   include/linux/kernel.h:986:24: note: in expansion of macro '__CAST2'
    #define __CONCAT(a, b) a ## b
                           ^
   include/linux/kernel.h:987:27: note: in expansion of macro '__CONCAT'
    #define CONCATENATE(a, b) __CONCAT(a, b)
                              ^~~~~~~~
   include/trace/bpf_probe.h:56:26: note: in expansion of macro 'CONCATENATE'
    #define CAST_TO_U64(...) CONCATENATE(__CAST, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__)
                             ^~~~~~~~~~~
   include/trace/bpf_probe.h:64:53: note: in expansion of macro 'CAST_TO_U64'
     CONCATENATE(bpf_trace_run, COUNT_ARGS(args))(prog, CAST_TO_U64(args)); \
                                                        ^~~~~~~~~~~
   include/trace/trace_events.h:74:2: note: in expansion of macro 'DECLARE_EVENT_CLASS'
     DECLARE_EVENT_CLASS(name,          \
     ^~~~~~~~~~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:50: note: declared here
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
                                           ~~~~~~~~~~^~~~~~~
   include/trace/bpf_probe.h:61:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
    __bpf_trace_##call(void *__data, proto)     \
                                     ^~~~~
   include/trace/trace_events.h:75:9: note: in expansion of macro 'PARAMS'
            PARAMS(proto),         \
            ^~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:19:1: note: in expansion of macro 'TRACE_EVENT'
    TRACE_EVENT(intel_pipe_crc,
    ^~~~~~~~~~~
   include/trace/../../drivers/gpu/drm/i915/i915_trace.h:20:6: note: in expansion of macro 'TP_PROTO'
         TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
         ^~~~~~~~

vim +39 include/trace/bpf_probe.h

c4f6699d Alexei Starovoitov 2018-03-28  29  
c4f6699d Alexei Starovoitov 2018-03-28  30  /* cast any integer, pointer, or small struct to u64 */
c4f6699d Alexei Starovoitov 2018-03-28  31  #define UINTTYPE(size) \
c4f6699d Alexei Starovoitov 2018-03-28  32  	__typeof__(__builtin_choose_expr(size == 1,  (u8)1, \
c4f6699d Alexei Starovoitov 2018-03-28  33  		   __builtin_choose_expr(size == 2, (u16)2, \
c4f6699d Alexei Starovoitov 2018-03-28  34  		   __builtin_choose_expr(size == 4, (u32)3, \
c4f6699d Alexei Starovoitov 2018-03-28  35  		   __builtin_choose_expr(size == 8, (u64)4, \
c4f6699d Alexei Starovoitov 2018-03-28  36  					 (void)5)))))
c4f6699d Alexei Starovoitov 2018-03-28  37  #define __CAST_TO_U64(x) ({ \
c4f6699d Alexei Starovoitov 2018-03-28  38  	typeof(x) __src = (x); \
c4f6699d Alexei Starovoitov 2018-03-28 @39  	UINTTYPE(sizeof(x)) __dst; \
c4f6699d Alexei Starovoitov 2018-03-28  40  	memcpy(&__dst, &__src, sizeof(__dst)); \
c4f6699d Alexei Starovoitov 2018-03-28  41  	(u64)__dst; })
c4f6699d Alexei Starovoitov 2018-03-28  42  

:::::: The code at line 39 was first introduced by commit
:::::: c4f6699dfcb8558d138fe838f741b2c10f416cf9 bpf: introduce BPF_RAW_TRACEPOINT

:::::: TO: Alexei Starovoitov <ast@kernel.org>
:::::: CC: Daniel Borkmann <daniel@iogearbox.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31638 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] drm/i915: Add pipe crc tracepoint
  2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
                   ` (7 preceding siblings ...)
  2019-02-07  6:01 ` kbuild test robot
@ 2019-02-13 17:40 ` Rodrigo Vivi
  8 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2019-02-13 17:40 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Wed, Feb 06, 2019 at 10:49:07PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Add a tracepoint for pipe crc. Makes life much simpler when staring at
> traces when hunting for fifo underruns and other issues which cause
> corrupted frames. We'll add the tracepoint before filtering out any
> potentially bogus crcs during modeset (should actually verify if that
> filtering is even correct anymore...)
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_irq.c   |  9 +++------
>  drivers/gpu/drm/i915/i915_trace.h | 25 +++++++++++++++++++++++++
>  2 files changed, 28 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 441d2674b272..92bb32ed27fb 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1693,7 +1693,9 @@ static void display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
>  {
>  	struct intel_pipe_crc *pipe_crc = &dev_priv->pipe_crc[pipe];
>  	struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
> -	u32 crcs[5];
> +	u32 crcs[5] = { crc0, crc1, crc2, crc3, crc4 };
> +
> +	trace_intel_pipe_crc(crtc, crcs);
>  
>  	spin_lock(&pipe_crc->lock);
>  	/*
> @@ -1712,11 +1714,6 @@ static void display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
>  	}
>  	spin_unlock(&pipe_crc->lock);
>  
> -	crcs[0] = crc0;
> -	crcs[1] = crc1;
> -	crcs[2] = crc2;
> -	crcs[3] = crc3;
> -	crcs[4] = crc4;
>  	drm_crtc_add_crc_entry(&crtc->base, true,
>  				drm_crtc_accurate_vblank_count(&crtc->base),
>  				crcs);
> diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
> index eab313c3163c..308d36926335 100644
> --- a/drivers/gpu/drm/i915/i915_trace.h
> +++ b/drivers/gpu/drm/i915/i915_trace.h
> @@ -18,6 +18,31 @@
>  
>  /* watermark/fifo updates */
>  
> +TRACE_EVENT(intel_pipe_crc,
> +	    TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
> +	    TP_ARGS(crtc, crcs),
> +
> +	    TP_STRUCT__entry(
> +			     __field(enum pipe, pipe)
> +			     __field(u32, frame)
> +			     __field(u32, scanline)
> +			     __array(u32, crcs, 5)
> +			     ),
> +
> +	    TP_fast_assign(
> +			   __entry->pipe = crtc->pipe;
> +			   __entry->frame = crtc->base.dev->driver->get_vblank_counter(crtc->base.dev,
> +										       crtc->pipe);
> +			   __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,
> +		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
> +		      __entry->crcs[3], __entry->crcs[4])
> +);
> +
>  TRACE_EVENT(intel_cpu_fifo_underrun,
>  	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>  	    TP_ARGS(dev_priv, pipe),
> -- 
> 2.19.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints
  2019-02-06 20:49 ` [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints Ville Syrjala
@ 2019-02-13 17:41   ` Rodrigo Vivi
  0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2019-02-13 17:41 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Wed, Feb 06, 2019 at 10:49:08PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Add tracepoints for pipe enable/disable. We'll include the
> frame/scanline counters for all pipes in these tracepoints to
> help in diagnosing underruns and whatnot when enabling/disabling
> pipes in parallel with plane updates/flips on another pipe.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_trace.h    | 56 ++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_display.c |  4 ++
>  2 files changed, 60 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
> index 308d36926335..96dfe651ffd0 100644
> --- a/drivers/gpu/drm/i915/i915_trace.h
> +++ b/drivers/gpu/drm/i915/i915_trace.h
> @@ -18,6 +18,62 @@
>  
>  /* watermark/fifo updates */
>  
> +TRACE_EVENT(intel_pipe_enable,
> +	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
> +	    TP_ARGS(dev_priv, pipe),
> +
> +	    TP_STRUCT__entry(
> +			     __array(u32, frame, 3)
> +			     __array(u32, scanline, 3)
> +			     __field(enum pipe, pipe)
> +			     ),
> +
> +	    TP_fast_assign(
> +			   enum pipe _pipe;
> +			   for_each_pipe(dev_priv, _pipe) {
> +				   __entry->frame[_pipe] =
> +					   dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, _pipe);
> +				   __entry->scanline[_pipe] =
> +					   intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, _pipe));
> +			   }
> +			   __entry->pipe = 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),
> +		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
> +		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
> +		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
> +);
> +
> +TRACE_EVENT(intel_pipe_disable,
> +	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
> +	    TP_ARGS(dev_priv, pipe),
> +
> +	    TP_STRUCT__entry(
> +			     __array(u32, frame, 3)
> +			     __array(u32, scanline, 3)
> +			     __field(enum pipe, pipe)
> +			     ),
> +
> +	    TP_fast_assign(
> +			   enum pipe _pipe;
> +			   for_each_pipe(dev_priv, _pipe) {
> +				   __entry->frame[_pipe] =
> +					   dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, _pipe);
> +				   __entry->scanline[_pipe] =
> +					   intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, _pipe));
> +			   }
> +			   __entry->pipe = 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),
> +		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
> +		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
> +		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
> +);
> +
>  TRACE_EVENT(intel_pipe_crc,
>  	    TP_PROTO(struct intel_crtc *crtc, const u32 crcs[5]),
>  	    TP_ARGS(crtc, crcs),
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 4d5ec929f987..4e3ea2d1a880 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -1821,6 +1821,8 @@ static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
>  		/* FIXME: assert CPU port conditions for SNB+ */
>  	}
>  
> +	trace_intel_pipe_enable(dev_priv, pipe);
> +
>  	reg = PIPECONF(cpu_transcoder);
>  	val = I915_READ(reg);
>  	if (val & PIPECONF_ENABLE) {
> @@ -1860,6 +1862,8 @@ static void intel_disable_pipe(const struct intel_crtc_state *old_crtc_state)
>  	 */
>  	assert_planes_disabled(crtc);
>  
> +	trace_intel_pipe_disable(dev_priv, pipe);
> +
>  	reg = PIPECONF(cpu_transcoder);
>  	val = I915_READ(reg);
>  	if ((val & PIPECONF_ENABLE) == 0)
> -- 
> 2.19.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/4] drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes()
  2019-02-06 20:49 ` [PATCH 3/4] drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes() Ville Syrjala
@ 2019-02-13 17:41   ` Rodrigo Vivi
  0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2019-02-13 17:41 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Wed, Feb 06, 2019 at 10:49:09PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> intel_crtc_disable_planes() disables the planes so it should
> trigger the appropriate tracepoint.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_display.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 4e3ea2d1a880..e404e9000893 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5524,6 +5524,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state,
>  		    !(update_mask & BIT(plane->id)))
>  			continue;
>  
> +		trace_intel_disable_plane(&plane->base, crtc);
>  		plane->disable_plane(plane, new_crtc_state);
>  
>  		if (old_plane_state->base.visible)
> -- 
> 2.19.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 4/4] drm/i915: Wrap plane update/disable hook calls
  2019-02-06 20:49 ` [PATCH 4/4] drm/i915: Wrap plane update/disable hook calls Ville Syrjala
@ 2019-02-13 17:41   ` Rodrigo Vivi
  0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2019-02-13 17:41 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Wed, Feb 06, 2019 at 10:49:10PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Wrap the .update_plane()/.update_slave()/.disable_plane() vfunc
> calls into helpers which also take care to emit the appropriate
> tracepoint.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_atomic_plane.c | 49 +++++++++++++++++------
>  drivers/gpu/drm/i915/intel_display.c      | 19 ++++-----
>  drivers/gpu/drm/i915/intel_drv.h          |  8 ++++
>  3 files changed, 51 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
> index a1a263026574..f9fc06017a39 100644
> --- a/drivers/gpu/drm/i915/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
> @@ -212,6 +212,35 @@ skl_next_plane_to_commit(struct intel_atomic_state *state,
>  	return NULL;
>  }
>  
> +void intel_update_plane(struct intel_plane *plane,
> +			const struct intel_crtc_state *crtc_state,
> +			const struct intel_plane_state *plane_state)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> +
> +	trace_intel_update_plane(&plane->base, crtc);
> +	plane->update_plane(plane, crtc_state, plane_state);
> +}
> +
> +void intel_update_slave(struct intel_plane *plane,
> +			const struct intel_crtc_state *crtc_state,
> +			const struct intel_plane_state *plane_state)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> +
> +	trace_intel_update_plane(&plane->base, crtc);
> +	plane->update_slave(plane, crtc_state, plane_state);
> +}
> +
> +void intel_disable_plane(struct intel_plane *plane,
> +			 const struct intel_crtc_state *crtc_state)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> +
> +	trace_intel_disable_plane(&plane->base, crtc);
> +	plane->disable_plane(plane, crtc_state);
> +}
> +
>  void skl_update_planes_on_crtc(struct intel_atomic_state *state,
>  			       struct intel_crtc *crtc)
>  {
> @@ -236,8 +265,7 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state,
>  			intel_atomic_get_new_plane_state(state, plane);
>  
>  		if (new_plane_state->base.visible) {
> -			trace_intel_update_plane(&plane->base, crtc);
> -			plane->update_plane(plane, new_crtc_state, new_plane_state);
> +			intel_update_plane(plane, new_crtc_state, new_plane_state);
>  		} else if (new_plane_state->slave) {
>  			struct intel_plane *master =
>  				new_plane_state->linked_plane;
> @@ -254,11 +282,9 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state,
>  			new_plane_state =
>  				intel_atomic_get_new_plane_state(state, master);
>  
> -			trace_intel_update_plane(&plane->base, crtc);
> -			plane->update_slave(plane, new_crtc_state, new_plane_state);
> +			intel_update_slave(plane, new_crtc_state, new_plane_state);
>  		} else {
> -			trace_intel_disable_plane(&plane->base, crtc);
> -			plane->disable_plane(plane, new_crtc_state);
> +			intel_disable_plane(plane, new_crtc_state);
>  		}
>  	}
>  }
> @@ -278,13 +304,10 @@ void i9xx_update_planes_on_crtc(struct intel_atomic_state *state,
>  		    !(update_mask & BIT(plane->id)))
>  			continue;
>  
> -		if (new_plane_state->base.visible) {
> -			trace_intel_update_plane(&plane->base, crtc);
> -			plane->update_plane(plane, new_crtc_state, new_plane_state);
> -		} else {
> -			trace_intel_disable_plane(&plane->base, crtc);
> -			plane->disable_plane(plane, new_crtc_state);
> -		}
> +		if (new_plane_state->base.visible)
> +			intel_update_plane(plane, new_crtc_state, new_plane_state);
> +		else
> +			intel_disable_plane(plane, new_crtc_state);
>  	}
>  }
>  
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index e404e9000893..de0e871da8db 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2820,8 +2820,7 @@ static void intel_plane_disable_noatomic(struct intel_crtc *crtc,
>  	if (plane->id == PLANE_PRIMARY)
>  		intel_pre_disable_primary_noatomic(&crtc->base);
>  
> -	trace_intel_disable_plane(&plane->base, crtc);
> -	plane->disable_plane(plane, crtc_state);
> +	intel_disable_plane(plane, crtc_state);
>  }
>  
>  static void
> @@ -5524,8 +5523,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state,
>  		    !(update_mask & BIT(plane->id)))
>  			continue;
>  
> -		trace_intel_disable_plane(&plane->base, crtc);
> -		plane->disable_plane(plane, new_crtc_state);
> +		intel_disable_plane(plane, new_crtc_state);
>  
>  		if (old_plane_state->base.visible)
>  			fb_bits |= plane->frontbuffer_bit;
> @@ -13937,14 +13935,11 @@ intel_legacy_cursor_update(struct drm_plane *plane,
>  	 */
>  	crtc_state->active_planes = new_crtc_state->active_planes;
>  
> -	if (plane->state->visible) {
> -		trace_intel_update_plane(plane, to_intel_crtc(crtc));
> -		intel_plane->update_plane(intel_plane, crtc_state,
> -					  to_intel_plane_state(plane->state));
> -	} else {
> -		trace_intel_disable_plane(plane, to_intel_crtc(crtc));
> -		intel_plane->disable_plane(intel_plane, crtc_state);
> -	}
> +	if (plane->state->visible)
> +		intel_update_plane(intel_plane, crtc_state,
> +				   to_intel_plane_state(plane->state));
> +	else
> +		intel_disable_plane(intel_plane, crtc_state);
>  
>  	intel_plane_unpin_fb(to_intel_plane_state(old_plane_state));
>  
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 90ba5436370e..6093bc34720a 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -2361,6 +2361,14 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
>  			       struct intel_crtc_state *crtc_state);
>  
>  /* intel_atomic_plane.c */
> +void intel_update_plane(struct intel_plane *plane,
> +			const struct intel_crtc_state *crtc_state,
> +			const struct intel_plane_state *plane_state);
> +void intel_update_slave(struct intel_plane *plane,
> +			const struct intel_crtc_state *crtc_state,
> +			const struct intel_plane_state *plane_state);
> +void intel_disable_plane(struct intel_plane *plane,
> +			 const struct intel_crtc_state *crtc_state);
>  struct intel_plane *intel_plane_alloc(void);
>  void intel_plane_free(struct intel_plane *plane);
>  struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane);
> -- 
> 2.19.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-02-13 17:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-06 20:49 [PATCH 1/4] drm/i915: Add pipe crc tracepoint Ville Syrjala
2019-02-06 20:49 ` [PATCH 2/4] drm/i915: Add pipe enable/disable tracepoints Ville Syrjala
2019-02-13 17:41   ` Rodrigo Vivi
2019-02-06 20:49 ` [PATCH 3/4] drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes() Ville Syrjala
2019-02-13 17:41   ` Rodrigo Vivi
2019-02-06 20:49 ` [PATCH 4/4] drm/i915: Wrap plane update/disable hook calls Ville Syrjala
2019-02-13 17:41   ` Rodrigo Vivi
2019-02-06 21:19 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/4] drm/i915: Add pipe crc tracepoint Patchwork
2019-02-06 21:49 ` ✓ Fi.CI.BAT: success " Patchwork
2019-02-07  1:44 ` ✓ Fi.CI.IGT: " Patchwork
2019-02-07  5:23 ` [PATCH 1/4] " kbuild test robot
2019-02-07  6:01 ` kbuild test robot
2019-02-13 17:40 ` Rodrigo Vivi

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.