dma-buf non-coherent mmap

Rob Clark robdclark at gmail.com
Fri Nov 1 01:25:41 CET 2013


On Thu, Oct 31, 2013 at 8:17 PM, Jakob Bornecrantz <wallbraker at gmail.com> wrote:
> On Fri, Nov 1, 2013 at 12:00 AM, Daniel Vetter <daniel at ffwll.ch> wrote:
>> On Thu, Oct 31, 2013 at 10:07:25PM +0100, Thomas Hellstrom wrote:
>>> On 10/31/2013 09:48 PM, Dave Airlie wrote:
>>> >On Fri, Nov 1, 2013 at 6:40 AM, Thomas Hellstrom <thellstrom at vmware.com> wrote:
>>> >>Well, I'd be happy to avoid mmap, but then what does optional mean in this
>>> >>context?
>>> >>That all generic user-space apps *must* implement a workaround if mmap isn't
>>> >>implemented?
>>> >>
>>> >>It's unfortunate a bit like implicit synchronization mentioned in section 3)
>>> >>in Direct Userspace Access/mmap Support
>>> >>in the kernel dma-buf doc: It should be avoided, otherwise it might be
>>> >>relied upon by userspace and exporters
>>> >>not implementing it will suffer.
>>> >>
>>> >>In reality, people will start using mmap() and won't care to implement
>>> >>workarounds if it's not supported, and drivers like
>>> >>vmwgfx and non-coherent architectures will suffer.
>>> >>
>>> >>I haven't looked closely at how DRI3 or Wayland/weston use or will use
>>> >>dma-buf, but if they rely on mmap, we're sort
>>> >>of lost. MIR uses the following scheme:
>>> >DRI3 and wayland won't use dma-buf mmap directly,
>>> >
>>> >using dma-buf mmap directly is wrong for anything that shares objects
>>> >with itself.
>>>
>>> That sounds good to hear. Perhaps we should add that to the dma-buf docs.
>>
>> Userspace mmap was essentially added as a concession to the android ion
>> guys since they really, really wanted it. We've tried to tell them that
>> it's a horrible idea (see all the fun with coherency and syncing), but
>> they said that they have userspace for it already and so we let it be.
>>
>> Imo if you're not running Android userspace there's no need for this at
>> all.
>
> But now it turns out that gstreamer is using it and our life is hell. We should
> have made it not work for _any_ driver if CONFIG_ANDRIOD wasn't set.

well, at the moment mmap is only implemented by a few of the arm
drivers, from the looks of it.  So I guess in the near term it is
mostly going to be of interest to the SoC crowd.  Not sure about the
long term, perhaps we should see about turning gallium
pipe_transfer/map stuff into a kernel interface (ioctl's directly on
the dmabuf fd, perhaps?)

BR,
-R

> Cheers, Jakob.
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list