drm/i915/selftests: Improve error detection of reset failure
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Mar 2019 11:11:46 +0000 (11:11 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Mar 2019 12:49:30 +0000 (12:49 +0000)
Use a timedwait to promptly detect if the recovery after reset fails and
provide a meaningful debug dump.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190312111146.10662-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/selftests/intel_hangcheck.c

index 10658ad..b5e35b2 100644 (file)
@@ -983,7 +983,23 @@ static int __igt_reset_engines(struct drm_i915_private *i915,
                        count++;
 
                        if (rq) {
-                               i915_request_wait(rq, 0, MAX_SCHEDULE_TIMEOUT);
+                               if (i915_request_wait(rq, 0, HZ / 5) < 0) {
+                                       struct drm_printer p =
+                                               drm_info_printer(i915->drm.dev);
+
+                                       pr_err("i915_reset_engine(%s:%s):"
+                                              " failed to complete request after reset\n",
+                                              engine->name, test_name);
+                                       intel_engine_dump(engine, &p,
+                                                         "%s\n", engine->name);
+                                       i915_request_put(rq);
+
+                                       GEM_TRACE_DUMP();
+                                       i915_gem_set_wedged(i915);
+                                       err = -EIO;
+                                       break;
+                               }
+
                                i915_request_put(rq);
                        }