Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Use a timedwait to promptly detect if the recovery after reset fails and > provide a meaningful debug dump. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > .../gpu/drm/i915/selftests/intel_hangcheck.c | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c > index 10658ad05305..b5e35b2a925f 100644 > --- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c > +++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c > @@ -983,7 +983,23 @@ static int __igt_reset_engines(struct drm_i915_private *i915, > count++; > > if (rq) { > - i915_request_wait(rq, 0, MAX_SCHEDULE_TIMEOUT); > + if (i915_request_wait(rq, 0, HZ / 5) < 0) { > + struct drm_printer p = > + drm_info_printer(i915->drm.dev); > + > + pr_err("i915_reset_engine(%s:%s):" > + " failed to complete request after reset\n", > + engine->name, test_name); > + intel_engine_dump(engine, &p, > + "%s\n", engine->name); > + i915_request_put(rq); > + > + GEM_TRACE_DUMP(); Would this be useful also in above, where we wait until request is running? > + i915_gem_set_wedged(i915); > + err = -EIO; Moving the *rq out from loop and then doing if(rq) i915_request_put(rq); out loop after exit, might be easier on error handling, shrug. Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > + break; > + } > + > i915_request_put(rq); > } > > -- > 2.20.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx