Commit 6e17ae73 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/gt: Only ignore already reset requests



If a request is being re-run after an innocent reset, it is marked as
-EAGAIN. So only skip an engine reset if the request is marked as -EIO.

Testcase: igt/gem_ctx_exec/basic-nohangcheck
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200207161602.2838218-1-chris@chris-wilson.co.uk
parent 0db1a5f8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -419,7 +419,7 @@ static struct intel_engine_cs *__active_engine(struct i915_request *rq)
	}

	engine = NULL;
	if (i915_request_is_active(rq) && !rq->fence.error)
	if (i915_request_is_active(rq) && rq->fence.error != -EIO)
		engine = rq->engine;

	spin_unlock_irq(&locked->active.lock);
+1 −1
Original line number Diff line number Diff line
@@ -1182,7 +1182,7 @@ static void intel_gt_reset_global(struct intel_gt *gt,

	kobject_uevent_env(kobj, KOBJ_CHANGE, error_event);

	drm_dbg(&gt->i915->drm, "resetting chip\n");
	drm_dbg(&gt->i915->drm, "resetting chip, engines=%x\n", engine_mask);
	kobject_uevent_env(kobj, KOBJ_CHANGE, reset_event);

	/* Use a watchdog to ensure that our reset completes */