On Wed, 14 Apr 2021, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Add some tracpoints for frontbuffer tracking so we can > try to figure out what's going on. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Acked-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > .../gpu/drm/i915/display/intel_frontbuffer.c | 5 +++ > drivers/gpu/drm/i915/i915_trace.h | 38 +++++++++++++++++++ > 2 files changed, 43 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c > index 6fc6965b6133..8161d49e78ba 100644 > --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c > +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c > @@ -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); > diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h > index a4addcc64978..81f5e1721180 100644 > --- a/drivers/gpu/drm/i915/i915_trace.h > +++ b/drivers/gpu/drm/i915/i915_trace.h > @@ -474,6 +474,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, -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx