From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 2/2] dma-buf/fence: add fence_array fences v4 Date: Fri, 20 May 2016 19:53:20 +0200 Message-ID: <573F4F10.2010606@vodafone.de> References: <1463752571-28688-1-git-send-email-deathsimple@vodafone.de> <1463752571-28688-2-git-send-email-deathsimple@vodafone.de> <20160520144728.GE15150@joana> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 2536C6E399 for ; Fri, 20 May 2016 17:53:29 +0000 (UTC) In-Reply-To: <20160520144728.GE15150@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 , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, daniel.vetter@ffwll.ch List-Id: dri-devel@lists.freedesktop.org QW0gMjAuMDUuMjAxNiB1bSAxNjo0NyBzY2hyaWViIEd1c3Rhdm8gUGFkb3ZhbjoKPiAyMDE2LTA1 LTIwIENocmlzdGlhbiBLw7ZuaWcgPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPjoKPgo+PiBGcm9t OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY28udWs+Cj4+Cj4+ IHN0cnVjdCBmZW5jZV9jb2xsZWN0aW9uIGluaGVyaXRzIGZyb20gc3RydWN0IGZlbmNlIGFuZCBj YXJyaWVzIGEKPj4gY29sbGVjdGlvbiBvZiBmZW5jZXMgdGhhdCBuZWVkcyB0byBiZSB3YWl0ZWQg dG9nZXRoZXIuCj4+Cj4+IEl0IGlzIHVzZWZ1bCB0byB0cmFuc2xhdGUgYSBzeW5jX2ZpbGUgdG8g YSBmZW5jZSB0byByZW1vdmUgdGhlIGNvbXBsZXhpdHkKPj4gb2YgZGVhbGluZyB3aXRoIHN5bmNf ZmlsZXMgb24gRFJNIGRyaXZlcnMuIFNvIGV2ZW4gaWYgdGhlcmUgYXJlIG1hbnkKPj4gZmVuY2Vz IGluIHRoZSBzeW5jX2ZpbGUgdGhhdCBuZWVkcyB0byB3YWl0ZWQgZm9yIGEgY29tbWl0IHRvIGhh cHBlbiwKPj4gdGhleSBhbGwgZ2V0IGFkZGVkIHRvIHRoZSBmZW5jZV9jb2xsZWN0aW9uIGFuZCBw YXNzZWQgZm9yIERSTSB1c2UgYXMKPj4gYSBzdGFuZGFyZCBzdHJ1Y3QgZmVuY2UuCj4+Cj4+IFRo YXQgbWVhbnMgdGhhdCBubyBjaGFuZ2VzIG5lZWRlZCB0byBhbnkgZHJpdmVyIGJlc2lkZXMgc3Vw cG9ydGluZyBmZW5jZXMuCj4+Cj4+IGZlbmNlX2NvbGxlY3Rpb24ncyBmZW5jZSBkb2Vzbid0IGJl bG9uZyB0byBhbnkgdGltZWxpbmUgY29udGV4dCwgc28KPj4gZmVuY2VfaXNfbGF0ZXIoKSBhbmQg ZmVuY2VfbGF0ZXIoKSBhcmUgbm90IG1lYW50IHRvIGJlIGNhbGxlZCB3aXRoCj4+IGZlbmNlX2Nv bGxlY3Rpb25zIGZlbmNlcy4KPj4KPj4gdjI6IENvbW1lbnRzIGJ5IERhbmllbCBWZXR0ZXI6Cj4+ IAktIG1lcmdlIGZlbmNlX2NvbGxlY3Rpb25faW5pdCgpIGFuZCBmZW5jZV9jb2xsZWN0aW9uX2Fk ZCgpCj4+IAktIG9ubHkgYWRkIGNhbGxiYWNrcyBhdCAtPmVuYWJsZV9zaWduYWxsaW5nKCkKPj4g CS0gcmVtb3ZlIGZlbmNlX2NvbGxlY3Rpb25fcHV0KCkKPj4gCS0gY2hlY2sgZm9yIHR5cGUgb24g dG9fZmVuY2VfY29sbGVjdGlvbigpCj4+IAktIGFkanVzdCBmZW5jZV9pc19sYXRlcigpIGFuZCBm ZW5jZV9sYXRlcigpIHRvIFdBUk5fT04oKSBpZiB0aGV5Cj4+IAlhcmUgdXNlZCB3aXRoIGNvbGxl Y3Rpb24gZmVuY2VzLgo+Pgo+PiB2MzogLSBJbml0aWFsaXplIGZlbmNlX2NiLm5vZGUgYXQgZmVu Y2UgaW5pdC4KPj4KPj4gICAgICBDb21tZW50cyBieSBDaHJpcyBXaWxzb246Cj4+IAktIHJldHVy biAidW5ib3VuZCIgb24gZmVuY2VfY29sbGVjdGlvbl9nZXRfdGltZWxpbmVfbmFtZSgpCj4+IAkt IGRvbid0IHN0b3AgYWRkaW5nIGNhbGxiYWNrcyBpZiBvbmUgZmFpbHMKPj4gCS0gcmVtb3ZlIHJl ZHVuZGFudCAhISBvbiBmZW5jZV9jb2xsZWN0aW9uX2VuYWJsZV9zaWduYWxpbmcoKQo+PiAJLSBy ZW1vdmUgcmVkdW5kYW50ICgpIG9uIGZlbmNlX2NvbGxlY3Rpb25fc2lnbmFsZWQKPj4gCS0gdXNl IGZlbmNlX2RlZmF1bHRfd2FpdCgpIGluc3RlYWQKPj4KPj4gdjQgKGNoayk6IFJld29yaywgc2lt cGxpZmljYXRpb24gYW5kIGNsZWFudXA6Cj4+IAktIERyb3AgRkVOQ0VfTk9fQ09OVEVYVCBoYW5k bGluZywgYWx3YXlzIGFsbG9jYXRlIGEgY29udGV4dC4KPj4gCS0gUmVuYW1lIHRvIGZlbmNlX2Fy cmF5Lgo+PiAJLSBSZXR1cm4gZml4ZWQgZHJpdmVyIG5hbWUuCj4+IAktIFJlZ2lzdGVyIG9ubHkg b25lIGNhbGxiYWNrIGF0IGEgdGltZS4KPj4gCS0gRG9jdW1lbnQgdGhhdCBjcmVhdGUgZnVuY3Rp b24gdGFrZXMgb3duZXJzaGlwIG9mIGFycmF5Lgo+IFRoaXMgbG9va3MgZ29vZCB0byBtZS4gRHJv cHBpbmcgTk9fQ09OVEVYVCB3YXMgYSBnb29kIGlkZWEsIGFsc28KPiByZWdpc3RlcmluZyBvbmx5 IG9uZSBjYWxsYmFjayBtYWtlcyBpdCBsb29rcyBiZXR0ZXIuCgpUaGlua2luZyBhYm91dCBpdCBh IGJpdCBtb3JlIEkgdGhpbmsgd2UgbmVlZCB0byBhdm9pZCByZW1vdmluZyB0aGUgCmNhbGxiYWNr IHdoZW4gdGhlIGZlbmNlIGlzIHJlbGVhc2VkIGFzIHdlbGwuCgpUaGF0IHN0dWZmIGlzIGp1c3Qg YSBiaXQgdG8gcmFjeSAoc2VlIHRoZSBjb21tZW50IG9uIHRoZSAKZmVuY2VfcmVtb3ZlX2NhbGxi YWNrIGZ1bmN0aW9uIGFzIHdlbGwpLgoKSSB3aWxsIGp1c3QgZ3JhYiBhIHJlZmVyZW5jZSB0byB0 aGUgZmVuY2Ugd2hpbGUgdGhlcmUgaXMgYW55IGNhbGxiYWNrIApyZWdpc3RlcmVkLgoKQWxzbyBw bGVhc2Ugbm90ZSB0aGF0IHRoaXMgaXMgb25seSBjb21waWxlIHRlc3RlZCBhdCB0aGUgbW9tZW50 LiBJJ20gCnN0aWxsIHdvcmtpbmcgb24gaW50ZWdyYXRpbmcgaXQgaW50byBteSBjb2RlLgoKUmVn YXJkcywKQ2hyaXN0aWFuLgoKPgo+IAlHdXN0YXZvCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752782AbcETRxo (ORCPT ); Fri, 20 May 2016 13:53:44 -0400 Received: from pegasos-out.vodafone.de ([80.84.1.38]:42507 "EHLO pegasos-out.vodafone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751895AbcETRxa (ORCPT ); Fri, 20 May 2016 13:53:30 -0400 X-Spam-Flag: NO X-Spam-Score: -0.045 Authentication-Results: rohrpostix1.prod.vfnet.de (amavisd-new); dkim=pass header.i=@vodafone.de X-DKIM: OpenDKIM Filter v2.6.8 pegasos-out.vodafone.de 4768E26166E Subject: Re: [PATCH 2/2] dma-buf/fence: add fence_array fences v4 To: Gustavo Padovan , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, daniel.vetter@ffwll.ch References: <1463752571-28688-1-git-send-email-deathsimple@vodafone.de> <1463752571-28688-2-git-send-email-deathsimple@vodafone.de> <20160520144728.GE15150@joana> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <573F4F10.2010606@vodafone.de> Date: Fri, 20 May 2016 19:53:20 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <20160520144728.GE15150@joana> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 20.05.2016 um 16:47 schrieb Gustavo Padovan: > 2016-05-20 Christian König : > >> From: Gustavo Padovan >> >> struct fence_collection inherits from struct fence and carries a >> collection of fences that needs to be waited together. >> >> It is useful to translate a sync_file to a fence to remove the complexity >> of dealing with sync_files on DRM drivers. So even if there are many >> fences in the sync_file that needs to waited for a commit to happen, >> they all get added to the fence_collection and passed for DRM use as >> a standard struct fence. >> >> That means that no changes needed to any driver besides supporting fences. >> >> fence_collection's fence doesn't belong to any timeline context, so >> fence_is_later() and fence_later() are not meant to be called with >> fence_collections fences. >> >> v2: Comments by Daniel Vetter: >> - merge fence_collection_init() and fence_collection_add() >> - only add callbacks at ->enable_signalling() >> - remove fence_collection_put() >> - check for type on to_fence_collection() >> - adjust fence_is_later() and fence_later() to WARN_ON() if they >> are used with collection fences. >> >> v3: - Initialize fence_cb.node at fence init. >> >> Comments by Chris Wilson: >> - return "unbound" on fence_collection_get_timeline_name() >> - don't stop adding callbacks if one fails >> - remove redundant !! on fence_collection_enable_signaling() >> - remove redundant () on fence_collection_signaled >> - use fence_default_wait() instead >> >> v4 (chk): Rework, simplification and cleanup: >> - Drop FENCE_NO_CONTEXT handling, always allocate a context. >> - Rename to fence_array. >> - Return fixed driver name. >> - Register only one callback at a time. >> - Document that create function takes ownership of array. > This looks good to me. Dropping NO_CONTEXT was a good idea, also > registering only one callback makes it looks better. Thinking about it a bit more I think we need to avoid removing the callback when the fence is released as well. That stuff is just a bit to racy (see the comment on the fence_remove_callback function as well). I will just grab a reference to the fence while there is any callback registered. Also please note that this is only compile tested at the moment. I'm still working on integrating it into my code. Regards, Christian. > > Gustavo