[Intel-gfx] [PATCH 3/5] drm/i915/gem: Wait until the context is finally retired before releasing engines
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Mon Apr 6 12:07:06 UTC 2020
On 06/04/2020 10:12, Chris Wilson wrote:
> If we want to percolate information back from the HW, up through the GEM
> context, we need to wait until the intel_context is scheduled out for
> the last time. This is handled by the retirement of the intel_context's
> barrier, i.e. by listening to the pulse after the notional unpin. So
> wait until the intel_context is finally retired before releasing the
> engine, so that we can inspect the final context state and pass it on.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_context.c | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index 2b6dd08de6f1..11d9135cf21a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> @@ -570,23 +570,19 @@ static void engines_idle_release(struct i915_gem_context *ctx,
> engines->ctx = i915_gem_context_get(ctx);
>
> for_each_gem_engine(ce, engines, it) {
> - struct dma_fence *fence;
> - int err = 0;
> + int err;
>
> /* serialises with execbuf */
> set_bit(CONTEXT_CLOSED_BIT, &ce->flags);
> if (!intel_context_pin_if_active(ce))
> continue;
>
> - fence = i915_active_fence_get(&ce->timeline->last_request);
> - if (fence) {
> - err = i915_sw_fence_await_dma_fence(&engines->fence,
> - fence, 0,
> - GFP_KERNEL);
> - dma_fence_put(fence);
> - }
> + /* Wait until context is finally scheduled out and retired */
> + err = i915_sw_fence_await_active(&engines->fence,
> + &ce->active,
> + I915_ACTIVE_AWAIT_BARRIER);
> intel_context_unpin(ce);
> - if (err < 0)
> + if (err)
> goto kill;
> }
>
>
This one is fine once I figure out the previous one. :)
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list