Commit ee4f42b1 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter

drm/i915: Record the position of the request upon error

So that we can tally the request against the command sequence in the
ringbuffer, or merely jump to the interesting locations.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 52d39a21
...@@ -799,9 +799,10 @@ static int i915_error_state(struct seq_file *m, void *unused) ...@@ -799,9 +799,10 @@ static int i915_error_state(struct seq_file *m, void *unused)
dev_priv->ring[i].name, dev_priv->ring[i].name,
error->ring[i].num_requests); error->ring[i].num_requests);
for (j = 0; j < error->ring[i].num_requests; j++) { for (j = 0; j < error->ring[i].num_requests; j++) {
seq_printf(m, " seqno 0x%08x, emitted %ld\n", seq_printf(m, " seqno 0x%08x, emitted %ld, tail 0x%08x\n",
error->ring[i].requests[j].seqno, error->ring[i].requests[j].seqno,
error->ring[i].requests[j].jiffies); error->ring[i].requests[j].jiffies,
error->ring[i].requests[j].tail);
} }
} }
......
...@@ -183,6 +183,7 @@ struct drm_i915_error_state { ...@@ -183,6 +183,7 @@ struct drm_i915_error_state {
struct drm_i915_error_request { struct drm_i915_error_request {
long jiffies; long jiffies;
u32 seqno; u32 seqno;
u32 tail;
} *requests; } *requests;
int num_requests; int num_requests;
} ring[I915_NUM_RINGS]; } ring[I915_NUM_RINGS];
......
...@@ -975,6 +975,7 @@ static void i915_gem_record_rings(struct drm_device *dev, ...@@ -975,6 +975,7 @@ static void i915_gem_record_rings(struct drm_device *dev,
erq = &error->ring[i].requests[count++]; erq = &error->ring[i].requests[count++];
erq->seqno = request->seqno; erq->seqno = request->seqno;
erq->jiffies = request->emitted_jiffies; erq->jiffies = request->emitted_jiffies;
erq->tail = request->tail;
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment