Message ID | 20180903083337.13134-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/5] drm/i915: Do a full device reset after being wedged | expand |
Quoting Chris Wilson (2018-09-03 11:33:33) > We only call unset_wedged on the global reset path (since it's a global > operation), so if we are terminally wedged and wish to reset, take the > full device reset path rather than the quicker individual engine resets. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> <SNIP> > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private *dev_priv, > * Try engine reset when available. We fall back to full reset if > * single reset fails. > */ > - if (intel_has_reset_engine(dev_priv)) { > + if (intel_has_reset_engine(dev_priv) && > + !i915_terminally_wedged(&dev_priv->gpu_error)) { NOT terminally wedged AND can reset individually reads clearer, but either way: Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Regards, Joonas
Quoting Patchwork (2018-09-03 11:29:24) > == Series Details == > > Series: series starting with [1/5] drm/i915: Do a full device reset after being wedged > URL : https://patchwork.freedesktop.org/series/49061/ > State : success > > == Summary == > > = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10068_full = > > == Summary - SUCCESS == > > No regressions found. A peaceful change. Thanks for the review, -Chris
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index e31093ce871c..10f28a2ee2e6 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private *dev_priv, * Try engine reset when available. We fall back to full reset if * single reset fails. */ - if (intel_has_reset_engine(dev_priv)) { + if (intel_has_reset_engine(dev_priv) && + !i915_terminally_wedged(&dev_priv->gpu_error)) { for_each_engine_masked(engine, dev_priv, engine_mask, tmp) { BUILD_BUG_ON(I915_RESET_MODESET >= I915_RESET_ENGINE); if (test_and_set_bit(I915_RESET_ENGINE + engine->id,
We only call unset_wedged on the global reset path (since it's a global operation), so if we are terminally wedged and wish to reset, take the full device reset path rather than the quicker individual engine resets. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/i915_irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)