[Linaro-mm-sig] [RFC 1/2] dma-buf: Introduce dma buffer sharing mechanism
airlied at gmail.com
Fri Nov 25 09:13:22 EST 2011
On Tue, Oct 11, 2011 at 10:23 AM, Sumit Semwal <sumit.semwal at ti.com> wrote:
> This is the first step in defining a dma buffer sharing mechanism.
> A new buffer object dma_buf is added, with operations and API to allow easy
> sharing of this buffer object across devices.
> The framework allows:
> - a new buffer-object to be created with fixed size.
> - different devices to 'attach' themselves to this buffer, to facilitate
> backing storage negotiation, using dma_buf_attach() API.
> - association of a file pointer with each user-buffer and associated
> allocator-defined operations on that buffer. This operation is called the
> 'export' operation.
> - this exported buffer-object to be shared with the other entity by asking for
> its 'file-descriptor (fd)', and sharing the fd across.
> - a received fd to get the buffer object back, where it can be accessed using
> the associated exporter-defined operations.
> - the exporter and user to share the scatterlist using get_scatterlist and
> put_scatterlist operations.
> Atleast one 'attach()' call is required to be made prior to calling the
> get_scatterlist() operation.
> Couple of building blocks in get_scatterlist() are added to ease introduction
> of sync'ing across exporter and users, and late allocation by the exporter.
> mmap() file operation is provided for the associated 'fd', as wrapper over the
> optional allocator defined mmap(), to be used by devices that might need one.
> More details are there in the documentation patch.
Some questions, I've started playing around with using this framework
to do buffer sharing between DRM devices,
Why struct scatterlist and not struct sg_table? it seems like I really
want to use an sg_table,
I'm not convinced fd's are really useful over just some idr allocated
handle, so far I'm just returning the "fd" to userspace as a handle,
and passing it back in the other side, so I'm not really sure what an
fd wins us here, apart from the mmap thing which I think shouldn't be
(if fd's do win us more we should probably record that in the docs patch).
More information about the linux-arm-kernel