Commit 95a19ab4 authored by Chris Wilson's avatar Chris Wilson

drm/i915/selftests: Pretty print engine state when requests fail to start

During hangcheck testing, we try to execute requests following the GPU
reset, and in particular want to try and debug when those fail.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171009110301.21705-2-chris@chris-wilson.co.ukReviewed-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
parent f636edb2
...@@ -624,8 +624,11 @@ static int igt_wait_reset(void *arg) ...@@ -624,8 +624,11 @@ static int igt_wait_reset(void *arg)
__i915_add_request(rq, true); __i915_add_request(rq, true);
if (!wait_for_hang(&h, rq)) { if (!wait_for_hang(&h, rq)) {
struct drm_printer p = drm_info_printer(i915->drm.dev);
pr_err("Failed to start request %x, at %x\n", pr_err("Failed to start request %x, at %x\n",
rq->fence.seqno, hws_seqno(&h, rq)); rq->fence.seqno, hws_seqno(&h, rq));
intel_engine_dump(rq->engine, &p);
i915_reset(i915, 0); i915_reset(i915, 0);
i915_gem_set_wedged(i915); i915_gem_set_wedged(i915);
...@@ -716,8 +719,12 @@ static int igt_reset_queue(void *arg) ...@@ -716,8 +719,12 @@ static int igt_reset_queue(void *arg)
__i915_add_request(rq, true); __i915_add_request(rq, true);
if (!wait_for_hang(&h, prev)) { if (!wait_for_hang(&h, prev)) {
struct drm_printer p = drm_info_printer(i915->drm.dev);
pr_err("Failed to start request %x, at %x\n", pr_err("Failed to start request %x, at %x\n",
prev->fence.seqno, hws_seqno(&h, prev)); prev->fence.seqno, hws_seqno(&h, prev));
intel_engine_dump(rq->engine, &p);
i915_gem_request_put(rq); i915_gem_request_put(rq);
i915_gem_request_put(prev); i915_gem_request_put(prev);
...@@ -818,8 +825,11 @@ static int igt_handle_error(void *arg) ...@@ -818,8 +825,11 @@ static int igt_handle_error(void *arg)
__i915_add_request(rq, true); __i915_add_request(rq, true);
if (!wait_for_hang(&h, rq)) { if (!wait_for_hang(&h, rq)) {
struct drm_printer p = drm_info_printer(i915->drm.dev);
pr_err("Failed to start request %x, at %x\n", pr_err("Failed to start request %x, at %x\n",
rq->fence.seqno, hws_seqno(&h, rq)); rq->fence.seqno, hws_seqno(&h, rq));
intel_engine_dump(rq->engine, &p);
i915_reset(i915, 0); i915_reset(i915, 0);
i915_gem_set_wedged(i915); i915_gem_set_wedged(i915);
......
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