[Intel-gfx] [PATCH 5/6] drm/i915/gt: Restore ce->signal flush before releasing virtual engine

Andi Shyti andi.shyti at intel.com
Tue Jan 5 01:57:40 UTC 2021


Hi Chris,

> Before we mark the virtual engine as no longer inflight, flush any
> ongoing signaling that may be using the ce->signal_link along the
> previous breadcrumbs. On switch to a new physical engine, that link will
> be inserted into the new set of breadcrumbs, causing confusion to an
> ongoing iterator.
> 
> This patch undoes a last minute mistake introduced into commit
> bab0557c8dca ("drm/i915/gt: Remove virtual breadcrumb before transfer"),
> whereby instead of unconditionally applying the flush, it was only
> applied if the request itself was going to be reused.
> 
> Fixes: bab0557c8dca ("drm/i915/gt: Remove virtual breadcrumb before transfer")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> index a5b442683c18..6414dbb124a7 100644
> --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> @@ -592,8 +592,6 @@ resubmit_virtual_request(struct i915_request *rq, struct virtual_engine *ve)
>  		 * ce->signal_link.
>  		 */
>  		i915_request_cancel_breadcrumb(rq);
> -		while (atomic_read(&engine->breadcrumbs->signaler_active))
> -			cpu_relax();
>  	}

As you are at it, you can also remove the braces, with that:

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

Thanks,
Andi


More information about the Intel-gfx mailing list