From: John Harrison <john.c.harri...@intel.com>

Added the request structure's 'uniq' identifier to the trace information. Also
renamed the '_complete' trace event to '_notify' as it actually happens in the
IRQ 'notify_ring()' function. Additionally there is now a new '_complete' trace
event which occurs when a request structure is marked as complete.

v2: New patch added to series.

For: VIZ-4377
Signed-off-by: John Harrison <john.c.harri...@intel.com>
Reviewed-by: Thomas Daniel <thomas.dan...@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c   |    4 +++-
 drivers/gpu/drm/i915/i915_irq.c   |    2 +-
 drivers/gpu/drm/i915/i915_trace.h |   22 ++++++++++++++++------
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 4ec27e1..197bac1 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2769,8 +2769,10 @@ void i915_gem_complete_requests_ring(struct 
intel_engine_cs *ring,
                if (req->complete)
                        continue;
 
-               if (i915_seqno_passed(seqno, req->seqno))
+               if (i915_seqno_passed(seqno, req->seqno)) {
                        req->complete = true;
+                       trace_i915_gem_request_complete(req);
+               }
        }
        spin_unlock_irqrestore(&ring->reqlist_lock, flags);
 
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index eb5441c..308e9da 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1000,7 +1000,7 @@ static void notify_ring(struct drm_device *dev,
        if (!intel_ring_initialized(ring))
                return;
 
-       trace_i915_gem_request_complete(ring);
+       trace_i915_gem_request_notify(ring);
 
        i915_gem_complete_requests_ring(ring, false);
 
diff --git a/drivers/gpu/drm/i915/i915_trace.h 
b/drivers/gpu/drm/i915/i915_trace.h
index 2ade958..6058a01 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -406,6 +406,7 @@ DECLARE_EVENT_CLASS(i915_gem_request,
            TP_STRUCT__entry(
                             __field(u32, dev)
                             __field(u32, ring)
+                            __field(u32, uniq)
                             __field(u32, seqno)
                             ),
 
@@ -414,11 +415,13 @@ DECLARE_EVENT_CLASS(i915_gem_request,
                                                i915_gem_request_get_ring(req);
                           __entry->dev = ring->dev->primary->index;
                           __entry->ring = ring->id;
+                          __entry->uniq = req ? req->uniq : 0;
                           __entry->seqno = i915_gem_request_get_seqno(req);
                           ),
 
-           TP_printk("dev=%u, ring=%u, seqno=%u",
-                     __entry->dev, __entry->ring, __entry->seqno)
+           TP_printk("dev=%u, ring=%u, uniq=%u, seqno=%u",
+                     __entry->dev, __entry->ring, __entry->uniq,
+                     __entry->seqno)
 );
 
 DEFINE_EVENT(i915_gem_request, i915_gem_request_add,
@@ -426,7 +429,7 @@ DEFINE_EVENT(i915_gem_request, i915_gem_request_add,
            TP_ARGS(req)
 );
 
-TRACE_EVENT(i915_gem_request_complete,
+TRACE_EVENT(i915_gem_request_notify,
            TP_PROTO(struct intel_engine_cs *ring),
            TP_ARGS(ring),
 
@@ -451,6 +454,11 @@ DEFINE_EVENT(i915_gem_request, i915_gem_request_retire,
            TP_ARGS(req)
 );
 
+DEFINE_EVENT(i915_gem_request, i915_gem_request_complete,
+           TP_PROTO(struct drm_i915_gem_request *req),
+           TP_ARGS(req)
+);
+
 TRACE_EVENT(i915_gem_request_wait_begin,
            TP_PROTO(struct drm_i915_gem_request *req),
            TP_ARGS(req),
@@ -458,6 +466,7 @@ TRACE_EVENT(i915_gem_request_wait_begin,
            TP_STRUCT__entry(
                             __field(u32, dev)
                             __field(u32, ring)
+                            __field(u32, uniq)
                             __field(u32, seqno)
                             __field(bool, blocking)
                             ),
@@ -473,14 +482,15 @@ TRACE_EVENT(i915_gem_request_wait_begin,
                                                i915_gem_request_get_ring(req);
                           __entry->dev = ring->dev->primary->index;
                           __entry->ring = ring->id;
+                          __entry->uniq = req ? req->uniq : 0;
                           __entry->seqno = i915_gem_request_get_seqno(req);
                           __entry->blocking =
                                     mutex_is_locked(&ring->dev->struct_mutex);
                           ),
 
-           TP_printk("dev=%u, ring=%u, seqno=%u, blocking=%s",
-                     __entry->dev, __entry->ring, __entry->seqno,
-                     __entry->blocking ?  "yes (NB)" : "no")
+           TP_printk("dev=%u, ring=%u, uniq=%u, seqno=%u, blocking=%s",
+                     __entry->dev, __entry->ring, __entry->uniq,
+                     __entry->seqno, __entry->blocking ?  "yes (NB)" : "no")
 );
 
 DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end,
-- 
1.7.9.5

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

Reply via email to