Skip to content

Commit

Permalink
drm/i915: Do request retirement before marking engines as wedged
Browse files Browse the repository at this point in the history
As we declare an engine as wedged, we mark all of its active requests as
in error. However, we don't want to mark successfully completed requests
as in error, which requires us to retire those requests first.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170330145041.9005-1-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Mar 30, 2017
1 parent 17ab792 commit 2c170af
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -2998,10 +2998,15 @@ void i915_gem_set_wedged(struct drm_i915_private *dev_priv)
lockdep_assert_held(&dev_priv->drm.struct_mutex);
set_bit(I915_WEDGED, &dev_priv->gpu_error.flags);

/* Retire completed requests first so the list of inflight/incomplete
* requests is accurate and we don't try and mark successful requests
* as in error during __i915_gem_set_wedged_BKL().
*/
i915_gem_retire_requests(dev_priv);

stop_machine(__i915_gem_set_wedged_BKL, dev_priv, NULL);

i915_gem_context_lost(dev_priv);
i915_gem_retire_requests(dev_priv);

mod_delayed_work(dev_priv->wq, &dev_priv->gt.idle_work, 0);
}
Expand Down

0 comments on commit 2c170af

Please sign in to comment.