[Intel-gfx] [PATCH 01/17] drm/i915/execlists: Always clear pending&inflight requests on reset
Andi Shyti
andi.shyti at intel.com
Thu Aug 1 08:08:11 UTC 2019
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 at 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);
> }
More information about the Intel-gfx
mailing list