From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 37/48] drm/i915: Defer request freeing Date: Wed, 18 Dec 2013 15:39:33 +0100 Message-ID: <20131218143933.GI26371@phenom.ffwll.local> References: <20131206215521.GA6922@bwidawsk.net> <1386367941-7131-1-git-send-email-benjamin.widawsky@intel.com> <1386367941-7131-37-git-send-email-benjamin.widawsky@intel.com> <20131212110847.GG6195@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ea0-f178.google.com (mail-ea0-f178.google.com [209.85.215.178]) by gabe.freedesktop.org (Postfix) with ESMTP id 10492FD060 for ; Wed, 18 Dec 2013 06:38:40 -0800 (PST) Received: by mail-ea0-f178.google.com with SMTP id d10so3566994eaj.23 for ; Wed, 18 Dec 2013 06:38:40 -0800 (PST) Content-Disposition: inline In-Reply-To: <20131212110847.GG6195@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Chris Wilson , Ben Widawsky , Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org On Thu, Dec 12, 2013 at 11:08:47AM +0000, Chris Wilson wrote: > On Fri, Dec 06, 2013 at 02:11:22PM -0800, Ben Widawsky wrote: > > From: Ben Widawsky > > > > With context destruction, we always want to be able to tear down the > > underlying address space. This is invoked on the last unreference to the > > context which could happen before we've moved all objects to the > > inactive list. To enable a clean tear down the address space, make sure > > to process the request free lastly. > > > > Without this change, we cannot guarantee to we don't still have active > > objects in the VM. > > > > As an example of a failing case: > > CTX-A is created, count=1 > > CTX-A is used during execbuf > > does a context switch count = 2 > > and add_request count = 3 > > CTX B runs, switches, CTX-A count = 2 > > CTX-A is destroyed, count = 1 > > retire requests is called > > free_request from CTX-A, count = 0 <--- free context with active object > > > > As mentioned above, by doing the free request after processing the > > active list, we can avoid this case. > > So just process the active_list first, the requests and objects > associated with the ring should be fairly independent. Also, stuff like this needs a testcase, and I didn't spot such a thing in the patches posted thus far. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch