From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 1/8] dma-buf/fence: add fence_collection fences Date: Fri, 15 Apr 2016 21:25:50 +0200 Message-ID: <20160415192550.GZ2510@phenom.ffwll.local> References: <1460683781-22535-1-git-send-email-gustavo@padovan.org> <1460683781-22535-2-git-send-email-gustavo@padovan.org> <20160415080254.GQ2510@phenom.ffwll.local> <5710AE61.9040308@amd.com> <20160415182750.GA23954@joana> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 418476ED02 for ; Fri, 15 Apr 2016 19:25:55 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id l6so8565449wml.3 for ; Fri, 15 Apr 2016 12:25:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160415182750.GA23954@joana> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gustavo Padovan , Christian =?iso-8859-1?Q?K=F6nig?= , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Daniel Stone , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Riley Andrews , Rob Clark , Greg Hackmann , John Harrison , laurent.pinchart@ideasonboard.com, seanpaul@google.com, marcheu@google.com, m.chehab@samsung.com, Maarten Lankhorst , Gustavo Padovan List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBcHIgMTUsIDIwMTYgYXQgMTE6Mjc6NTBBTSAtMDcwMCwgR3VzdGF2byBQYWRvdmFu IHdyb3RlOgo+IDIwMTYtMDQtMTUgQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPjoKPiA+IEFtZGdwdSBhbHNvIGhhcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgYSBmZW5j ZSBjb2xsZWN0aW9uIHdoaWNoIHVzZXMgYSBhCj4gPiBoYXNodGFibGUgdG8ga2VlcCB0aGUgZmVu Y2VzIGdyb3VwZWQgYnkgY29udGV4dCAoZS5nLiBvbmx5IHRoZSBsYXRlc3QgZmVuY2UKPiA+IGlz IGtlZXB0IGZvciBlYWNoIGNvbnRleHQpLiBTZWUgYW1kZ3B1X3N5bmMuYyBmb3IgcmVmZXJlbmNl Lgo+ID4gCj4gPiBXZSBzaG91bGQgZWl0aGVyIG1ha2UgdGhlIGNvbGxlY3Rpb24gc2ltaWxhciBp biBhIHdheSB0aGF0IHlvdSBjYW4gYWRkIGFzCj4gPiBtYW55IGZlbmNlcyBhcyB5b3Ugd2FudCAo bGlrZSB0aGUgYW1kZ3B1IGltcGxlbWVudGF0aW9uKSBvciBtYWtlIGl0IHN0YXRpYwo+ID4gYW5k IG9ubHkgYWRkIGEgZml4ZWQgbnVtYmVyIG9mIGZlbmNlcyByaWdodCBmcm9tIHRoZSBiZWdpbm5p bmcuCj4gPiAKPiA+IEkgY2FuIGNlcnRhaW5seSBzZWUgdXNlIGNhc2VzIGZvciBib3RoLCBidXQg aWYgeW91IHdhbnQgdG8gc3RpY2sgd2l0aCBhCj4gPiBzdGF0aWMgYXBwcm9hY2ggeW91IHNob3Vs ZCBwcm9iYWJseSBjYWxsIHRoZSBuZXcgb2JqZWN0IGZlbmNlX2FycmF5IGluc3RlYWQKPiA+IG9m IGZlbmNlX2NvbGxlY3Rpb24gYW5kIGRvIGFzIERhbmllbCBzdWdnZXN0ZWQuCj4gCj4gTWF5YmUg d2UgY2FuIGdvIGZvciBzb21ldGhpbmcgaW4gYmV0d2Vlbi4gSGF2ZSBmZW5jZV9jb2xsZWN0aW9u X2luaXQoKQo+IG5lZWQgYXQgbGVhc3QgdHdvIGZlbmNlcyB0byBjcmVhdGUgdGhlIGZlbmNlX2Nv bGxlY3Rpb24uIFRoZW4KPiBmZW5jZV9jb2xsZWN0aW9uX2FkZCgpIHdvdWxkIGFkZCBtb3JlIGRp bmFtaWNhbGx5LgoKVGhlIHByb2JsZW0gd2l0aCBhZGRpbmcgZmVuY2VzIGxhdGVyIG9uIGlzIHRo YXQgaXQgbWFrZXMgaXQgdHJpdmlhbCB0byBhZGQKZGVhZGxvY2tzIGFuZCBsb29wcy4gSnVzdCBh ZGQgdGhlIGZlbmNlIGNvbGxlY3Rpb24gdG8gaXRzZWxmLCBib29tLiBGcm9tCnRoYXQgcG92IGl0 J3MgYW4gdW5zYWZlIGFwaSwgYW5kIGhlbmNlIHNvbWV0aGluZyB0byBhdm9pZC4KLURhbmllbAot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932118AbcDOT0D (ORCPT ); Fri, 15 Apr 2016 15:26:03 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:32843 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753059AbcDOTZz (ORCPT ); Fri, 15 Apr 2016 15:25:55 -0400 Date: Fri, 15 Apr 2016 21:25:50 +0200 From: Daniel Vetter To: Gustavo Padovan , Christian =?iso-8859-1?Q?K=F6nig?= , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Daniel Stone , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Riley Andrews , Rob Clark , Greg Hackmann , John Harrison , laurent.pinchart@ideasonboard.com, seanpaul@google.com, marcheu@google.com, m.chehab@samsung.com, Maarten Lankhorst , Gustavo Padovan Subject: Re: [RFC 1/8] dma-buf/fence: add fence_collection fences Message-ID: <20160415192550.GZ2510@phenom.ffwll.local> Mail-Followup-To: Gustavo Padovan , Christian =?iso-8859-1?Q?K=F6nig?= , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Daniel Stone , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Riley Andrews , Rob Clark , Greg Hackmann , John Harrison , laurent.pinchart@ideasonboard.com, seanpaul@google.com, marcheu@google.com, m.chehab@samsung.com, Maarten Lankhorst , Gustavo Padovan References: <1460683781-22535-1-git-send-email-gustavo@padovan.org> <1460683781-22535-2-git-send-email-gustavo@padovan.org> <20160415080254.GQ2510@phenom.ffwll.local> <5710AE61.9040308@amd.com> <20160415182750.GA23954@joana> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160415182750.GA23954@joana> X-Operating-System: Linux phenom 4.4.0-1-amd64 User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 15, 2016 at 11:27:50AM -0700, Gustavo Padovan wrote: > 2016-04-15 Christian König : > > Amdgpu also has an implementation for a fence collection which uses a a > > hashtable to keep the fences grouped by context (e.g. only the latest fence > > is keept for each context). See amdgpu_sync.c for reference. > > > > We should either make the collection similar in a way that you can add as > > many fences as you want (like the amdgpu implementation) or make it static > > and only add a fixed number of fences right from the beginning. > > > > I can certainly see use cases for both, but if you want to stick with a > > static approach you should probably call the new object fence_array instead > > of fence_collection and do as Daniel suggested. > > Maybe we can go for something in between. Have fence_collection_init() > need at least two fences to create the fence_collection. Then > fence_collection_add() would add more dinamically. The problem with adding fences later on is that it makes it trivial to add deadlocks and loops. Just add the fence collection to itself, boom. From that pov it's an unsafe api, and hence something to avoid. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch