diff mbox series

[1/5] drm/i915: Do a full device reset after being wedged

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

Commit Message

Chris Wilson Sept. 3, 2018, 8:33 a.m. UTC
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(-)

Comments

Joonas Lahtinen Sept. 3, 2018, 9:56 a.m. UTC | #1
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
Chris Wilson Sept. 3, 2018, 11:05 a.m. UTC | #2
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 mbox series

Patch

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,