From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from youngberry.canonical.com ([91.189.89.112]:40888 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751920Ab2GMVo1 (ORCPT ); Fri, 13 Jul 2012 17:44:27 -0400 Message-ID: <500096B6.2090208@canonical.com> Date: Fri, 13 Jul 2012 23:44:22 +0200 From: Maarten Lankhorst MIME-Version: 1.0 To: Rob Clark CC: Tom Cooksey , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, patches@linaro.org, daniel.vetter@ffwll.ch, linux-kernel@vger.kernel.org, sumit.semwal@linaro.org Subject: Re: [RFC] dma-fence: dma-buf synchronization (v2) References: <1342193911-16157-1-git-send-email-rob.clark@linaro.org> <50005dfd.25f2440a.6e6b.ffffbcd9SMTPIN_ADDED@mx.google.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: Hey, Op 13-07-12 20:52, Rob Clark schreef: > On Fri, Jul 13, 2012 at 12:35 PM, Tom Cooksey wrote: >> My other thought is around atomicity. Could this be extended to >> (safely) allow for hardware devices which might want to access >> multiple buffers simultaneously? I think it probably can with >> some tweaks to the interface? An atomic function which does >> something like "give me all the fences for all these buffers >> and add this fence to each instead/as-well-as"? > fwiw, what I'm leaning towards right now is combining dma-fence w/ > Maarten's idea of dma-buf-mgr (not sure if you saw his patches?). And > let dmabufmgr handle the multi-buffer reservation stuff. And possibly > the read vs write access, although this I'm not 100% sure on... the > other option being the concept of read vs write (or > exclusive/non-exclusive) fences. Agreed, dmabufmgr is meant for reserving multiple buffers without deadlocks. The underlying mechanism for synchronization can be dma-fences, it wouldn't really change dmabufmgr much. > In the current state, the fence is quite simple, and doesn't care > *what* it is fencing, which seems advantageous when you get into > trying to deal with combinations of devices sharing buffers, some of > whom can do hw sync, and some who can't. So having a bit of > partitioning from the code dealing w/ sequencing who can access the > buffers when and for what purpose seems like it might not be a bad > idea. Although I'm still working through the different alternatives. > Yeah, I managed to get nouveau hooked up with generating irqs on completion today using an invalid command. It's also no longer a performance regression, so software syncing is no longer a problem for nouveau. i915 already generates irqs and r600 presumably too. Monday I'll take a better look at your patch, end of day now. :) ~Maarten