From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tomasz Stanislawski <t.stanislaws@samsung.com>
Cc: ben@bwidawsk.net, daniel.vetter@ffwll.ch,
dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org,
kyungmin.park@samsung.com, sakari.ailus@iki.fi,
airlied@redhat.com, Sumit Semwal <sumit.semwal@linaro.org>,
m.szyprowski@samsung.com
Subject: Re: [RFCv2 PATCH 3/9] v4l: vb2: Add dma-contig allocator as dma_buf user
Date: Wed, 28 Mar 2012 17:50:18 +0200 [thread overview]
Message-ID: <1882491.JVmAQqEWZC@avalon> (raw)
In-Reply-To: <4F7090E5.2000707@samsung.com>
Hi Tomasz,
On Monday 26 March 2012 17:53:09 Tomasz Stanislawski wrote:
> On 03/22/2012 12:04 PM, Laurent Pinchart wrote:
> > On Tuesday 13 March 2012 11:17:01 Tomasz Stanislawski wrote:
[snip]
> >> +static void vb2_dc_detach_dmabuf(void *mem_priv)
> >> +{
> >> + struct vb2_dc_buf *buf = mem_priv;
> >> +
> >> + if (buf->dma_addr)
> >> + vb2_dc_unmap_dmabuf(buf);
> >
> > Can detach() be called with the buffer still mapped() ? Wouldn't that be a
> > bug in the caller ?
>
> No, it is not. The functions from vb2_dc_*_dmabuf are called by vb2-core.
> It is not a part of DMABUF API itself. Therefore usage can be a bit
> different. Please refer to the function __qbuf_dmabuf function vb2-core. If
> new DMABUF is passed to in the QBUF then old DMABUF is released by calling
> detach_dmabuf without unmap. However, this part of code is probably not
> reachable if the buffer was not dequeued.
>
> Detach without unmap may happen in a case of closing a video fd
> without prior dequeuing of all buffers.
>
> Do you think it would be a good idea to move a call map_dmabuf to
> __enqueue_in_driver and add calling unmap_dmabuf to vb2_buffer_done?
That's hard to tell. From the DRM point of view, I expect that you will be
asked to keep the buffer mapped for as little time as possible. This is a sane
behaviour, but will have a performance impact as we will have to constantly
map/unmap buffers. From a V4L2 point of view I would prefer keeping the
mappins when possible. This topic has already been discussed, and we haven't
reached any consensus yet as far as I know :-/
> >> +
> >> + /* detach this attachment */
> >> + dma_buf_detach(buf->db_attach->dmabuf, buf->db_attach);
> >> + kfree(buf);
> >> +}
> >
> > There's nothing allocator-specific in the attach/detach operations.
> > Shouldn't they be moved to the vb2 core ?
>
> Calling dma_buf_attach could be moved to vb2-core. But it gives little gain.
> First, the pointer of dma_buf_attachment would have to be added to struct
> vb2_plane. Second, the allocator would have to keep in the copy of this
> pointer in its context structure for use of vb2_dc_(un)map_dmabuf
> functions.
Right. Would it make sense to pass the vb2_plane pointer, or possibly the
dma_buf_attachment pointer, to the mmap_dmabuf and unmap_dmabuf operations ?
> Third, dma_buf_attach requires a pointer to 'struct device' which is not
> available in the vb2-core layer.
OK, that's a problem.
> Because of the mentioned reasons I decided to keep attach_dmabuf in
> allocator-specific code.
Maybe it would make sense to create a vb2_mem_buf structure from which
vb2_dc_buf (and other allocator-specific buffer descriptors) would inherit ?
That structure would store the dma_buf_attach pointer, and common dma-buf code
could be put in videobuf2-memops.c and shared between allocators. Just an
idea.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2012-03-28 19:07 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-13 10:16 [RFCv2 PATCH 0/9] Integration of videobuf2 with dmabuf Tomasz Stanislawski
2012-03-13 10:16 ` [RFCv2 PATCH 1/9] v4l: vb2: fixes for DMABUF support Tomasz Stanislawski
2012-03-22 7:56 ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 2/9] v4l: vb2-dma-contig: update and code refactoring Tomasz Stanislawski
2012-03-22 9:27 ` Laurent Pinchart
2012-03-22 10:02 ` [RFCv2 PATCH 2/9 - 1/4] v4l: vb2-dma-contig: Shorten vb2_dma_contig prefix to vb2_dc Laurent Pinchart
2012-03-22 10:02 ` [RFCv2 PATCH 2/9 - 2/4] v4l: vb2-dma-contig: Reorder functions Laurent Pinchart
2012-03-22 10:02 ` [RFCv2 PATCH 2/9 - 3/4] v4l: vb2-dma-contig: Remove unneeded allocation context structure Laurent Pinchart
2012-03-22 10:02 ` [RFCv2 PATCH 2/9 - 4/4] v4l: vb2-dma-contig: update and code refactoring Laurent Pinchart
2012-03-22 10:50 ` [Linaro-mm-sig] " Laurent Pinchart
2012-03-22 13:36 ` Tomasz Stanislawski
2012-03-22 14:42 ` Laurent Pinchart
2012-03-22 14:52 ` Subash Patel
2012-03-22 16:18 ` Tomasz Stanislawski
2012-03-22 15:58 ` Tomasz Stanislawski
2012-03-27 15:01 ` Laurent Pinchart
2012-03-27 16:45 ` Jerome Glisse
2012-03-27 16:58 ` Laurent Pinchart
2012-03-22 13:42 ` [Linaro-mm-sig] [RFCv2 PATCH 2/9] " Subash Patel
2012-03-13 10:17 ` [RFCv2 PATCH 3/9] v4l: vb2: Add dma-contig allocator as dma_buf user Tomasz Stanislawski
2012-03-22 11:04 ` Laurent Pinchart
2012-03-26 15:53 ` Tomasz Stanislawski
2012-03-28 15:50 ` Laurent Pinchart [this message]
2012-03-13 10:17 ` [RFCv2 PATCH 4/9] v4l: add buffer exporting via dmabuf Tomasz Stanislawski
2012-03-18 21:47 ` Daniel Vetter
2012-03-22 11:16 ` Laurent Pinchart
2012-03-22 13:57 ` [Linaro-mm-sig] " Subash Patel
2012-03-22 14:07 ` Laurent Pinchart
2012-03-22 14:26 ` Daniel Vetter
2012-03-22 14:43 ` Laurent Pinchart
2012-03-22 14:59 ` Subash Patel
2012-03-22 15:09 ` Laurent Pinchart
2012-03-23 11:33 ` Tomasz Stanislawski
2012-03-27 10:21 ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 5/9] v4l: vb2: " Tomasz Stanislawski
2012-03-22 11:24 ` Laurent Pinchart
2012-03-23 11:50 ` Tomasz Stanislawski
2012-03-13 10:17 ` [RFCv2 PATCH 6/9] v4l: vb2-dma-contig: add support for DMABUF exporting Tomasz Stanislawski
2012-03-13 10:17 ` [RFCv2 PATCH 7/9] v4l: vb2-dma-contig: change map/unmap behaviour Tomasz Stanislawski
2012-03-22 12:15 ` Laurent Pinchart
2012-03-22 12:25 ` Daniel Vetter
2012-03-27 10:31 ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 8/9] v4l: fimc: integrate capture i-face with dmabuf Tomasz Stanislawski
2012-03-13 10:17 ` [RFCv2 PATCH 9/9] v4l: s5p-tv: mixer: integrate " Tomasz Stanislawski
-- strict thread matches above, loose matches on Subject: below --
2012-03-06 11:38 [RFCv2 PATCH 0/9] Integration of videobuf2 " Tomasz Stanislawski
2012-03-06 11:38 ` [RFCv2 PATCH 3/9] v4l: vb2: Add dma-contig allocator as dma_buf user Tomasz Stanislawski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1882491.JVmAQqEWZC@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=airlied@redhat.com \
--cc=ben@bwidawsk.net \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=kyungmin.park@samsung.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=m.szyprowski@samsung.com \
--cc=sakari.ailus@iki.fi \
--cc=sumit.semwal@linaro.org \
--cc=t.stanislaws@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.