[Intel-gfx] [PATCH 1/2] drm/i915: reference count for i915_hw_contexts

Daniel Vetter daniel at ffwll.ch
Tue Apr 30 23:39:54 CEST 2013


On Tue, Apr 30, 2013 at 11:40:16AM -0700, Ben Widawsky wrote:
> On Tue, Apr 30, 2013 at 01:30:33PM +0300, Mika Kuoppala wrote:
> > Enabling PPGTT and also the need to track which context was guilty of
> > gpu hang (arb robustness enabling) have put pressure for struct i915_hw_context
> > to be more than just a placeholder for hw context state.
> > 
> > In order to track object lifetime properly in a multi peer usage, add reference
> > counting for i915_hw_context.
> > 
> > v2: track i915_hw_context pointers instead of using ctx_ids
> > (from Chris Wilson)
> > 
> > v3 (Ben): Get rid of do_release() and handle refcounting more compactly.
> > (recommended by Chis)
> > 
> > v4: kref_* put inside static inlines (Daniel Vetter)
> > remove code duplication on freeing context (Chris Wilson)
> > 
> > v5: idr_remove and ctx->file_priv = NULL in destroy ioctl (Chris)
> > This actually will cause a problem if one destroys a context and later
> > refers to the idea of the context (multiple contexts may have the same
> > id, but only 1 will exist in the idr).
> > 
> > v6: Strip out the request related stuff. Reworded commit message.
> > Got rid of do_destroy and introduced i915_gem_context_release_handle,
> > suggested by Chris Wilson.
> > 
> > v7: idr_remove can't be called inside idr_for_each (Chris Wilson)
> > 
> > Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com> (v2)
> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net> (v3)
> > Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com> (v4)
> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net> (v5)
> > Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com> (v7)
> 
> I can't spot anything wrong, thought I'd argue this commit message
> belongs with the actual reference counting to come later since a lot of
> the history is with bugs found there.
> 
> This patch is simply introducing context refcounting interfaces and
> replacing explicit destruction with unreferencing (and in all cases
> there should be no functional impact).
> 
> So bring on the real request reference counting now!
> Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list