Re: [PATCH 01/17] drm/i915/execlists: Always clear pending&inflight requests on reset

Andi Shyti
2019-08-01T08:08:16Z

Hi Chris,

> If we skip the reset as we found the engine inactive at the time of the
> reset, we still need to clear the residual inflight & pending request
> bookkeeping to reflect the current state of HW.

[...]

> Where not having cleared the pending array on reset, it persists
> indefinitely.

des this fix Bug 111144(*)?

> -
> - /*
> - * Catch up with any missed context-switch interrupts.
> - *
> - * Ideally we would just read the remaining CSB entries now that we
> - * know the gpu is idle. However, the CSB registers are sometimes^W
> - * often trashed across a GPU reset! Instead we have to rely on
> - * guessing the missed context-switch events by looking at what
> - * requests were completed.
> - */
> - execlists_cancel_port_requests(execlists);
> -

why did this end up here in a first place?

Reviewed-by: Andi Shyti <andi.shyti@intel.com>

Andi

(*) https://bugs.freedesktop.org/show_bug.cgi?id=111144

> if (!rq) {
> ce->ring->head = ce->ring->tail;
> goto out_replay;
> @@ -2356,6 +2344,7 @@ static void __execlists_reset(struct intel_engine_cs *engine, bool stalled)
>
> unwind:
> /* Push back any incomplete requests for replay after the reset. */
> + execlists_cancel_port_requests(execlists);
> __unwind_incomplete_requests(engine);
> }