[PATCH 8/8] HACK/TEST: drm/i915: Check reset in progress flag is set correctly in old platforms
Michel Thierry
michel.thierry at intel.com
Wed Dec 14 19:59:30 UTC 2016
Trying to figure out these spurious CI warnings
https://intel-gfx-ci.01.org/CI/Trybot_392/fi-ilk-650/igt@gem_ringfill@basic-default-hang.html
https://intel-gfx-ci.01.org/CI/Trybot_392/fi-byt-j1900/igt@gem_ringfill@basic-default-hang.html
[ ] drm/i915: Resetting chip after gpu hang
[ ] [drm:intel_engine_reset_begin [i915]] *ERROR* Engine Reset not supported on Gen5/7
[ ] [drm:i915_reset_engine [i915]] *ERROR* Failed to disable render ring
[ ] drm/i915: Resetting chip after gpu hang
Which imply something strange happened in i915_handle_error, reset_in_progress
flag should have been set for Gen5 there...
Signed-off-by: Michel Thierry <michel.thierry at intel.com>
---
drivers/gpu/drm/i915/i915_irq.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index c1932248d5e0..07e2175ddd6c 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2630,11 +2630,18 @@ static void i915_reset_and_wakeup(struct drm_i915_private *dev_priv,
struct intel_engine_cs *engine;
unsigned int tmp, ret;
- for_each_engine_masked(engine, dev_priv, engine_mask, tmp) {
- ret = i915_reset_engine(engine);
- /* on failure we fallback to full gpu reset for recovery */
- if (ret)
- break;
+ if (!intel_has_engine_reset(dev_priv)) {
+ DRM_ERROR("XXX: Engine Reset not supported on Gen %d, r_i_p: [%d]\n",
+ INTEL_INFO(dev_priv)->gen, i915_reset_in_progress(error));
+ /* use full gpu reset to recover on error */
+ set_bit(I915_RESET_IN_PROGRESS, &error->flags);
+ } else {
+ for_each_engine_masked(engine, dev_priv, engine_mask, tmp) {
+ ret = i915_reset_engine(engine);
+ /* on failure we fallback to full gpu reset for recovery */
+ if (ret)
+ break;
+ }
}
}
--
2.11.0
More information about the Intel-gfx-trybot
mailing list