From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/2] drm/i915: reference count for i915_hw_contexts Date: Tue, 30 Apr 2013 23:39:54 +0200 Message-ID: <20130430213954.GC5763@phenom.ffwll.local> References: <1367317834-11294-1-git-send-email-mika.kuoppala@intel.com> <20130430184016.GA8393@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by gabe.freedesktop.org (Postfix) with ESMTP id 82FE6E602A for ; Tue, 30 Apr 2013 14:36:51 -0700 (PDT) Received: by mail-wg0-f53.google.com with SMTP id z11so928855wgg.20 for ; Tue, 30 Apr 2013 14:36:50 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20130430184016.GA8393@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ben Widawsky Cc: intel-gfx@lists.freedesktop.org, miku@iki.fi List-Id: intel-gfx@lists.freedesktop.org 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 (v2) > > Signed-off-by: Ben Widawsky (v3) > > Signed-off-by: Mika Kuoppala (v4) > > Signed-off-by: Ben Widawsky (v5) > > Signed-off-by: Mika Kuoppala (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 Queued for -next, thanks for the patch. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch