[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