> -----Original Message-----
> From: Intel-gfx [mailto:[email protected]] On Behalf
> Of Mika Kuoppala
> Sent: Tuesday, January 13, 2015 9:32 AM
> To: [email protected]
> Subject: [Intel-gfx] [PATCH 1/2] drm/i915: Balance context pinning on reset
> cleanup
> 
> We pin when we submit to execlist queue. Balance the pinning when the
> submitted queue is cleaned on reset.
> 
> Cc: Dave Gordon <[email protected]>
> Signed-off-by: Mika Kuoppala <[email protected]>
> ---
>  drivers/gpu/drm/i915/i915_gem.c  | 4 ++++
> drivers/gpu/drm/i915/intel_lrc.c | 1 +
>  2 files changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c
> b/drivers/gpu/drm/i915/i915_gem.c index 6c40365..68ea67d 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2657,6 +2657,10 @@ static void i915_gem_reset_ring_cleanup(struct
> drm_i915_private *dev_priv,
>                               execlist_link);
>               list_del(&submit_req->execlist_link);
>               intel_runtime_pm_put(dev_priv);
> +
> +             if (submit_req->ctx != ring->default_context)
> +                     intel_lr_context_unpin(ring, submit_req->ctx);
> +
>               i915_gem_context_unreference(submit_req->ctx);
>               kfree(submit_req);
>       }
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c
> b/drivers/gpu/drm/i915/intel_lrc.c
> index 7670a0f..56a3625 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1774,6 +1774,7 @@ void intel_lr_context_free(struct intel_context
> *ctx)
>                               intel_unpin_ringbuffer_obj(ringbuf);
>                               i915_gem_object_ggtt_unpin(ctx_obj);
>                       }
> +                     WARN_ON(ctx->engine[ring->id].unpin_count);
>                       intel_destroy_ringbuffer_obj(ringbuf);
>                       kfree(ringbuf);
>                       drm_gem_object_unreference(&ctx_obj->base);

Assuming this still patch still applies after Nick Hoath's recent changes,
Reviewed-by: Thomas Daniel <[email protected]>

Note that there is still a bug in reset_ring_cleanup where neither the ring 
buffers nor the contexts head and tail are updated in execlists mode but the 
requests are cleaned out.  I will post a separate patch for that soon.

Thomas.
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to