From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 37/48] drm/i915: Defer request freeing Date: Thu, 12 Dec 2013 11:08:47 +0000 Message-ID: <20131212110847.GG6195@nuc-i3427.alporthouse.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [87.106.93.118]) by gabe.freedesktop.org (Postfix) with ESMTP id 0DAC1FA46C for ; Thu, 12 Dec 2013 03:08:52 -0800 (PST) Content-Disposition: inline In-Reply-To: <1386367941-7131-37-git-send-email-benjamin.widawsky@intel.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: Ben Widawsky Cc: Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org 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. -Chris -- Chris Wilson, Intel Open Source Technology Centre