Commit 1a86ac79 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Add frontbuffer tracking tracepoints



Add some tracpoints for frontbuffer tracking so we can
try to figure out what's going on.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210414022309.30898-2-ville.syrjala@linux.intel.com


Acked-by: default avatarJani Nikula <jani.nikula@intel.com>
parent b109da48
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@
#include "display/intel_dp.h"

#include "i915_drv.h"
#include "i915_trace.h"
#include "intel_display_types.h"
#include "intel_fbc.h"
#include "intel_frontbuffer.h"
@@ -87,6 +88,8 @@ static void frontbuffer_flush(struct drm_i915_private *i915,
	if (!frontbuffer_bits)
		return;

	trace_intel_frontbuffer_flush(frontbuffer_bits, origin);

	might_sleep();
	intel_edp_drrs_flush(i915, frontbuffer_bits);
	intel_psr_flush(i915, frontbuffer_bits, origin);
@@ -173,6 +176,8 @@ void __intel_fb_invalidate(struct intel_frontbuffer *front,
		spin_unlock(&i915->fb_tracking.lock);
	}

	trace_intel_frontbuffer_invalidate(frontbuffer_bits, origin);

	might_sleep();
	intel_psr_invalidate(i915, frontbuffer_bits, origin);
	intel_edp_drrs_invalidate(i915, frontbuffer_bits);
+38 −0
Original line number Diff line number Diff line
@@ -475,6 +475,44 @@ TRACE_EVENT(intel_pipe_update_end,
		      __entry->scanline)
);

/* frontbuffer tracking */

TRACE_EVENT(intel_frontbuffer_invalidate,
	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
	    TP_ARGS(frontbuffer_bits, origin),

	    TP_STRUCT__entry(
			     __field(unsigned int, frontbuffer_bits)
			     __field(unsigned int, origin)
			     ),

	    TP_fast_assign(
			   __entry->frontbuffer_bits = frontbuffer_bits;
			   __entry->origin = origin;
			   ),

	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
		      __entry->frontbuffer_bits, __entry->origin)
);

TRACE_EVENT(intel_frontbuffer_flush,
	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
	    TP_ARGS(frontbuffer_bits, origin),

	    TP_STRUCT__entry(
			     __field(unsigned int, frontbuffer_bits)
			     __field(unsigned int, origin)
			     ),

	    TP_fast_assign(
			   __entry->frontbuffer_bits = frontbuffer_bits;
			   __entry->origin = origin;
			   ),

	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
		      __entry->frontbuffer_bits, __entry->origin)
);

/* object tracking */

TRACE_EVENT(i915_gem_object_create,