drm/i915: Add flip done tracepoint
Add a tracepoint to see exactly when async flips complete. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240611133344.30673-4-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
@@ -346,6 +346,7 @@ static void flip_done_handler(struct drm_i915_private *i915,
|
||||
spin_lock(&i915->drm.event_lock);
|
||||
|
||||
if (crtc->flip_done_event) {
|
||||
trace_intel_crtc_flip_done(crtc);
|
||||
drm_crtc_send_vblank_event(&crtc->base, crtc->flip_done_event);
|
||||
crtc->flip_done_event = NULL;
|
||||
}
|
||||
|
||||
@@ -78,6 +78,29 @@ TRACE_EVENT(intel_pipe_disable,
|
||||
__entry->frame[PIPE_C], __entry->scanline[PIPE_C])
|
||||
);
|
||||
|
||||
TRACE_EVENT(intel_crtc_flip_done,
|
||||
TP_PROTO(struct intel_crtc *crtc),
|
||||
TP_ARGS(crtc),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__string(dev, __dev_name_kms(crtc))
|
||||
__field(enum pipe, pipe)
|
||||
__field(u32, frame)
|
||||
__field(u32, scanline)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_str(dev);
|
||||
__entry->pipe = crtc->pipe;
|
||||
__entry->frame = intel_crtc_get_vblank_counter(crtc);
|
||||
__entry->scanline = intel_get_crtc_scanline(crtc);
|
||||
),
|
||||
|
||||
TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
|
||||
__get_str(dev), pipe_name(__entry->pipe),
|
||||
__entry->frame, __entry->scanline)
|
||||
);
|
||||
|
||||
TRACE_EVENT(intel_pipe_crc,
|
||||
TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
|
||||
TP_ARGS(crtc, crcs),
|
||||
|
||||
Reference in New Issue
Block a user