[PATCH 07/20] drm/i915: Carry on with reset even if hw engine is not ready

Michel Thierry michel.thierry at intel.com
Fri May 19 20:14:16 UTC 2017


We try to get the engines ready/idle before triggering the reset, but it
has been seen that sometimes the hw never acknowledges this.

If we miss the acknowledgment, carry on with the reset instead of
leaving the GPU in a wedged state.

The frequency of missed acknowledgment from hw is low, but it has been
seen at least once in CI.

References: https://intel-gfx-ci.01.org/CI/Trybot_831/
Reported-by: Antonio Argenziano <antonio.argenziano at intel.com>
Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Michel Thierry <michel.thierry at intel.com>
---
 drivers/gpu/drm/i915/intel_uncore.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index df37a59ab5b3..2b5d6a18e4d1 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -1744,8 +1744,12 @@ static int gen8_reset_engine_start(struct intel_engine_cs *engine)
 					 RESET_CTL_READY_TO_RESET,
 					 RESET_CTL_READY_TO_RESET,
 					 700);
-	if (ret)
-		DRM_ERROR("%s: reset request timeout\n", engine->name);
+	if (GEM_WARN_ON(ret)) {
+		/* hw did not ack ready-to-reset, reset anyway */
+		DRM_DEBUG_DRIVER("%s: reset request timeout, continue\n",
+				 engine->name);
+		ret = 0;
+	}
 
 	return ret;
 }
-- 
2.11.0



More information about the Intel-gfx-trybot mailing list