[Intel-gfx] [RFC 25/37] drm/i915/sched: include scheduler state in error capture

John.C.Harrison at Intel.com John.C.Harrison at Intel.com
Mon Nov 23 03:42:00 PST 2015


From: Dave Gordon <david.s.gordon at intel.com>

For: VIZ-2021
Signed-off-by: Dave Gordon <david.s.gordon at intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h       | 1 +
 drivers/gpu/drm/i915/i915_gpu_error.c | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9bece1e..06dff5a 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -584,6 +584,7 @@ struct drm_i915_error_state {
 			u32 tail;
 			u32 submission_count;
 			u64 ringbuffer_gtt;
+			char scheduler_state;
 		} *requests;
 
 		struct {
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 346c831..2d9dd3f 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -614,10 +614,12 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m,
 				err_printf(m, "  seqno 0x%08x, ringbuf 0x%llx "
 					      "head 0x%08x tail 0x%08x, "
 					      "emitted %ld, %d submissions, "
+					      "sched %c "
 					      "ctx_desc 0x%08x_%08x\n",
 					erq->seqno, erq->ringbuffer_gtt,
 					erq->head, erq->tail,
 					erq->jiffies, erq->submission_count,
+					erq->scheduler_state,
 					upper_32_bits(erq->ctx_desc),
 					lower_32_bits(erq->ctx_desc));
 			}
@@ -1296,6 +1298,7 @@ static void i915_gem_record_rings(struct drm_device *dev,
 
 		count = 0;
 		list_for_each_entry(request, &ring->request_list, list) {
+			struct i915_scheduler_queue_entry *sqe = request->scheduler_qe;
 			struct intel_context *ctx = request->ctx;
 			struct drm_i915_error_request *erq;
 
@@ -1326,6 +1329,8 @@ static void i915_gem_record_rings(struct drm_device *dev,
 			erq->head = request->head;
 			erq->submission_count = request->elsp_submitted;
 			erq->ringbuffer_gtt = i915_gem_obj_ggtt_offset(request->ringbuf->obj);
+			erq->scheduler_state = !sqe ? 'u' :
+				i915_scheduler_queue_status_chr(sqe->status);
 		}
 	}
 }
-- 
1.9.1



More information about the Intel-gfx mailing list