drm/i915/selftests: Check for engine-reset errors in the middle of workarounds
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 25 Jan 2021 14:00:56 +0000 (14:00 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 24 Mar 2021 18:30:35 +0000 (19:30 +0100)
As we reset the engine between verifying the workarounds remain intact,
report an engine reset failure.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210125140136.10494-1-chris@chris-wilson.co.uk
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/gt/selftest_workarounds.c

index 37ea469..af33a72 100644 (file)
@@ -1219,7 +1219,11 @@ live_engine_reset_workarounds(void *arg)
                        goto err;
                }
 
-               intel_engine_reset(engine, "live_workarounds:idle");
+               ret = intel_engine_reset(engine, "live_workarounds:idle");
+               if (ret) {
+                       pr_err("%s: Reset failed while idle\n", engine->name);
+                       goto err;
+               }
 
                ok = verify_wa_lists(gt, &lists, "after idle reset");
                if (!ok) {
@@ -1240,12 +1244,18 @@ live_engine_reset_workarounds(void *arg)
 
                ret = request_add_spin(rq, &spin);
                if (ret) {
-                       pr_err("Spinner failed to start\n");
+                       pr_err("%s: Spinner failed to start\n", engine->name);
                        igt_spinner_fini(&spin);
                        goto err;
                }
 
-               intel_engine_reset(engine, "live_workarounds:active");
+               ret = intel_engine_reset(engine, "live_workarounds:active");
+               if (ret) {
+                       pr_err("%s: Reset failed on an active spinner\n",
+                              engine->name);
+                       igt_spinner_fini(&spin);
+                       goto err;
+               }
 
                igt_spinner_end(&spin);
                igt_spinner_fini(&spin);