mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-04 21:04:46 +08:00
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: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210414022309.30898-2-ville.syrjala@linux.intel.com Acked-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
b109da48e6
commit
1a86ac792f
@ -58,6 +58,7 @@
|
|||||||
#include "display/intel_dp.h"
|
#include "display/intel_dp.h"
|
||||||
|
|
||||||
#include "i915_drv.h"
|
#include "i915_drv.h"
|
||||||
|
#include "i915_trace.h"
|
||||||
#include "intel_display_types.h"
|
#include "intel_display_types.h"
|
||||||
#include "intel_fbc.h"
|
#include "intel_fbc.h"
|
||||||
#include "intel_frontbuffer.h"
|
#include "intel_frontbuffer.h"
|
||||||
@ -87,6 +88,8 @@ static void frontbuffer_flush(struct drm_i915_private *i915,
|
|||||||
if (!frontbuffer_bits)
|
if (!frontbuffer_bits)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
trace_intel_frontbuffer_flush(frontbuffer_bits, origin);
|
||||||
|
|
||||||
might_sleep();
|
might_sleep();
|
||||||
intel_edp_drrs_flush(i915, frontbuffer_bits);
|
intel_edp_drrs_flush(i915, frontbuffer_bits);
|
||||||
intel_psr_flush(i915, frontbuffer_bits, origin);
|
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);
|
spin_unlock(&i915->fb_tracking.lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trace_intel_frontbuffer_invalidate(frontbuffer_bits, origin);
|
||||||
|
|
||||||
might_sleep();
|
might_sleep();
|
||||||
intel_psr_invalidate(i915, frontbuffer_bits, origin);
|
intel_psr_invalidate(i915, frontbuffer_bits, origin);
|
||||||
intel_edp_drrs_invalidate(i915, frontbuffer_bits);
|
intel_edp_drrs_invalidate(i915, frontbuffer_bits);
|
||||||
|
@ -475,6 +475,44 @@ TRACE_EVENT(intel_pipe_update_end,
|
|||||||
__entry->scanline)
|
__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 */
|
/* object tracking */
|
||||||
|
|
||||||
TRACE_EVENT(i915_gem_object_create,
|
TRACE_EVENT(i915_gem_object_create,
|
||||||
|
Loading…
Reference in New Issue
Block a user