On Wed, Apr 19, 2017 at 11:49:26AM +0100, Chris Wilson wrote: > On Tue, Apr 18, 2017 at 01:23:20PM -0700, Michel Thierry wrote: > > + ret = i915_gem_reset_prepare_engine(engine); > > + if (ret) { > > + DRM_ERROR("Previous reset failed - promote to full reset\n"); > > + goto error; > > + } > > + > > + /* > > + * the request that caused the hang is stuck on elsp, identify the > > + * active request and drop it, adjust head to skip the offending > > + * request to resume executing remaining requests in the queue. > > + */ > > Hmm. Interesting. This relies on i915_gem_retire_requests() (i.e. > struct_mutex) to skip replaying innocent requests, but here we should be > asserting that we do have the hung request. > > i.e. > request = i915_gem_find_active_request(engine); > if (!request) > goto skip. Forgot to mention this should include a "pardoned" check, i.e. that the active request still matches the watchdog seqno. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx