On Mon, Jan 16, 2017 at 09:42:52AM +0000, Chris Wilson wrote:
> If we can't recover the GPU after the reset, mark it as wedged to cancel
> the outstanding tasks and to prevent new users from trying to use the
> broken GPU.
> 
> Signed-off-by: Chris Wilson <[email protected]>
> Cc: Mika Kuoppala <[email protected]>
> Cc: Tvrtko Ursulin <[email protected]>
> ---
> -void i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
> +int i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
>  {
>       struct intel_engine_cs *engine;
>       enum intel_engine_id id;
> +     int err = 0;
>  
>       /* Ensure irq handler finishes, and not run again. */
> -     for_each_engine(engine, dev_priv, id)
> +     for_each_engine(engine, dev_priv, id) {
> +             struct drm_i915_gem_request *request;
> +
>               tasklet_kill(&engine->irq_tasklet);
>  
> +             request = i915_gem_find_active_request(engine);
> +             if (request && request->fence.error == -EIO)
> +                     err = -EIO; /* Previous reset failed! */

This should check that it is this engine that is declared as hung - as
we may not have given the GPU the chance to even execute the requests
from the previous reset.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to