On 19/06/17 05:46, Chris Wilson wrote:
Quoting Michel Thierry (2017-06-15 21:18:12)
@@ -2992,10 +3014,8 @@ void i915_gem_reset_finish(struct drm_i915_private
*dev_priv)
lockdep_assert_held(&dev_priv->drm.struct_mutex);
- for_each_engine(engine, dev_priv, id) {
- ta
Quoting Michel Thierry (2017-06-15 21:18:12)
> @@ -2992,10 +3014,8 @@ void i915_gem_reset_finish(struct drm_i915_private
> *dev_priv)
>
> lockdep_assert_held(&dev_priv->drm.struct_mutex);
>
> - for_each_engine(engine, dev_priv, id) {
> - tasklet_enable(&engine->irq_
Quoting Michel Thierry (2017-06-15 21:18:12)
> int i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
> {
> struct intel_engine_cs *engine;
> + struct drm_i915_gem_request *request;
> enum intel_engine_id id;
> int err = 0;
>
> - /* Ensure irq handler
This change implements support for per-engine reset as an initial, less
intrusive hang recovery option to be attempted before falling back to the
legacy full GPU reset recovery mode if necessary. This is only supported
from Gen8 onwards.
Hangchecker determines which engines are hung and invokes er