All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <tfiga@chromium.org>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org,
	dri-devel <dri-devel@lists.freedesktop.org>,
	posciak@chromium.org, Marek Szyprowski <m.szyprowski@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	sumit.semwal@linaro.org, Rob Clark <robdclark@gmail.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	labbott@redhat.com,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: [RFC v4 07/18] vb2: dma-contig: Remove redundant sgt_base field
Date: Wed, 10 May 2017 18:13:04 +0800	[thread overview]
Message-ID: <CAAFQd5CSf33de4r3WX_v8ZuLwb6SFFtP5EQY=Bh5t8y3UiR+sA@mail.gmail.com> (raw)
In-Reply-To: <1494255810-12672-8-git-send-email-sakari.ailus@linux.intel.com>

Hi Sakari,

Some comments inline.

On Mon, May 8, 2017 at 11:03 PM, Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> The struct vb2_dc_buf contains two struct sg_table fields: sgt_base and
> dma_sgt. The former is used by DMA-BUF buffers whereas the latter is used
> by USERPTR.
>
> Unify the two, leaving dma_sgt.
>
> MMAP buffers do not need cache flushing since they have been allocated
> using dma_alloc_coherent().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
> ---
>  drivers/media/v4l2-core/videobuf2-dma-contig.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c
> index a8a46a8..ddbbcf0 100644
> --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c
> +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c
> @@ -31,12 +31,13 @@ struct vb2_dc_buf {
>         unsigned long                   attrs;
>         enum dma_data_direction         dma_dir;
>         struct sg_table                 *dma_sgt;
> -       struct frame_vector             *vec;
>
>         /* MMAP related */
>         struct vb2_vmarea_handler       handler;
>         refcount_t                      refcount;
> -       struct sg_table                 *sgt_base;
> +
> +       /* USERPTR related */
> +       struct frame_vector             *vec;
>
>         /* DMABUF related */
>         struct dma_buf_attachment       *db_attach;
> @@ -96,7 +97,7 @@ static void vb2_dc_prepare(void *buf_priv)
>         struct sg_table *sgt = buf->dma_sgt;
>
>         /* DMABUF exporter will flush the cache for us */
> -       if (!sgt || buf->db_attach)
> +       if (!buf->vec)

While at it, can we change the comment above to actually refer to what
this condition is checking? Maybe it's just me, but it's very
confusing, as the condition is actually (!USERPTR), while the comment
mentions DMABUF alone and not even mentioning about MMAP. Maybe we
could have something like this:

/*
 * Only USERPTR needs cache maintenance. DMABUF exporter will flush
 * the cache for us, while MMAP buffers are coherent by design.
 */

I guess it could be done as a separate patch after this series,
especially considering the message might actually change, since we are
going to allow cached MMAP buffers.

>                 return;
>
>         dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->orig_nents,
> @@ -109,7 +110,7 @@ static void vb2_dc_finish(void *buf_priv)
>         struct sg_table *sgt = buf->dma_sgt;
>
>         /* DMABUF exporter will flush the cache for us */

Here too.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tfiga@chromium.org>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	linux-media@vger.kernel.org, posciak@chromium.org,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [RFC v4 07/18] vb2: dma-contig: Remove redundant sgt_base field
Date: Wed, 10 May 2017 18:13:04 +0800	[thread overview]
Message-ID: <CAAFQd5CSf33de4r3WX_v8ZuLwb6SFFtP5EQY=Bh5t8y3UiR+sA@mail.gmail.com> (raw)
In-Reply-To: <1494255810-12672-8-git-send-email-sakari.ailus@linux.intel.com>

Hi Sakari,

Some comments inline.

On Mon, May 8, 2017 at 11:03 PM, Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> The struct vb2_dc_buf contains two struct sg_table fields: sgt_base and
> dma_sgt. The former is used by DMA-BUF buffers whereas the latter is used
> by USERPTR.
>
> Unify the two, leaving dma_sgt.
>
> MMAP buffers do not need cache flushing since they have been allocated
> using dma_alloc_coherent().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
> ---
>  drivers/media/v4l2-core/videobuf2-dma-contig.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c
> index a8a46a8..ddbbcf0 100644
> --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c
> +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c
> @@ -31,12 +31,13 @@ struct vb2_dc_buf {
>         unsigned long                   attrs;
>         enum dma_data_direction         dma_dir;
>         struct sg_table                 *dma_sgt;
> -       struct frame_vector             *vec;
>
>         /* MMAP related */
>         struct vb2_vmarea_handler       handler;
>         refcount_t                      refcount;
> -       struct sg_table                 *sgt_base;
> +
> +       /* USERPTR related */
> +       struct frame_vector             *vec;
>
>         /* DMABUF related */
>         struct dma_buf_attachment       *db_attach;
> @@ -96,7 +97,7 @@ static void vb2_dc_prepare(void *buf_priv)
>         struct sg_table *sgt = buf->dma_sgt;
>
>         /* DMABUF exporter will flush the cache for us */
> -       if (!sgt || buf->db_attach)
> +       if (!buf->vec)

While at it, can we change the comment above to actually refer to what
this condition is checking? Maybe it's just me, but it's very
confusing, as the condition is actually (!USERPTR), while the comment
mentions DMABUF alone and not even mentioning about MMAP. Maybe we
could have something like this:

/*
 * Only USERPTR needs cache maintenance. DMABUF exporter will flush
 * the cache for us, while MMAP buffers are coherent by design.
 */

I guess it could be done as a separate patch after this series,
especially considering the message might actually change, since we are
going to allow cached MMAP buffers.

>                 return;
>
>         dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->orig_nents,
> @@ -109,7 +110,7 @@ static void vb2_dc_finish(void *buf_priv)
>         struct sg_table *sgt = buf->dma_sgt;
>
>         /* DMABUF exporter will flush the cache for us */

Here too.

Best regards,
Tomasz
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-05-10 10:13 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-08 15:03 [RFC v4 00/18] vb2: Handle user cache hints, allow drivers to choose cache coherency Sakari Ailus
2017-05-08 15:03 ` [RFC v4 01/18] vb2: Rename confusingly named internal buffer preparation functions Sakari Ailus
2017-05-08 15:03 ` [RFC v4 02/18] vb2: Move buffer cache synchronisation to prepare from queue Sakari Ailus
2017-05-08 15:03   ` Sakari Ailus
2017-05-08 15:03 ` [RFC v4 03/18] vb2: Move cache synchronisation from buffer done to dqbuf handler Sakari Ailus
2018-10-05  4:34   ` Tomasz Figa
2018-10-05  4:34     ` Tomasz Figa
2017-05-08 15:03 ` [RFC v4 04/18] v4l: Unify cache management hint buffer flags Sakari Ailus
2017-05-08 15:03 ` [RFC v4 05/18] vb2: Anticipate queue specific DMA attributes for USERPTR buffers Sakari Ailus
2017-05-08 15:03 ` [RFC v4 06/18] vb2: dma-contig: Assign DMA attrs for a buffer unconditionally Sakari Ailus
2017-05-08 15:03 ` [RFC v4 07/18] vb2: dma-contig: Remove redundant sgt_base field Sakari Ailus
2017-05-10 10:13   ` Tomasz Figa [this message]
2017-05-10 10:13     ` Tomasz Figa
2017-05-08 15:03 ` [RFC v4 08/18] vb2: dma-contig: Don't warn on failure in obtaining scatterlist Sakari Ailus
2017-05-08 15:03   ` Sakari Ailus
2017-05-08 15:03 ` [RFC v4 09/18] vb2: dma-contig: Allocate sgt as part of struct vb2_dc_buf Sakari Ailus
2017-05-08 15:03 ` [RFC v4 10/18] vb2: dma-contig: Fix DMA attribute and cache management Sakari Ailus
2017-05-08 15:03   ` Sakari Ailus
2017-05-10 10:32   ` Tomasz Figa
2017-05-23 12:07     ` Sakari Ailus
2017-05-23 12:07       ` Sakari Ailus
2017-05-08 15:03 ` [RFC v4 11/18] vb2: dma-contig: Add WARN_ON_ONCE() to check for potential bugs Sakari Ailus
2017-05-08 15:03 ` [RFC v4 12/18] vb2: dma-sg: Let drivers decide DMA attrs of MMAP and USERPTR bufs Sakari Ailus
2017-05-08 15:03 ` [RFC v4 13/18] vb2: Don't sync cache for a buffer if so requested Sakari Ailus
2017-05-10 11:00   ` Tomasz Figa
2017-05-23 12:35     ` Sakari Ailus
2017-05-08 15:03 ` [RFC v4 14/18] vb2: Improve struct vb2_mem_ops documentation; alloc and put are for MMAP Sakari Ailus
2017-05-08 15:03 ` [RFC v4 15/18] vb2: Dma direction is always DMA_TO_DEVICE in buffer preparation Sakari Ailus
2017-05-08 15:03 ` [RFC v4 16/18] vb2: Do sync plane cache only for CAPTURE buffers in finish memop Sakari Ailus
2017-05-08 15:03 ` [RFC v4 17/18] docs-rst: Document precise V4L2_BUF_FLAG_NO_CACHE_SYNC flag behaviour Sakari Ailus
2017-05-08 15:03 ` [RFC v4 18/18] v4l: Use non-consistent DMA mappings for hardware that deserves it Sakari Ailus
2017-06-07 17:13 ` [RFC v4 00/18] vb2: Handle user cache hints, allow drivers to choose cache coherency Mauro Carvalho Chehab
2017-06-07 20:56   ` Sakari Ailus

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='CAAFQd5CSf33de4r3WX_v8ZuLwb6SFFtP5EQY=Bh5t8y3UiR+sA@mail.gmail.com' \
    --to=tfiga@chromium.org \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hverkuil@xs4all.nl \
    --cc=kyungmin.park@samsung.com \
    --cc=labbott@redhat.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=posciak@chromium.org \
    --cc=robdclark@gmail.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sumit.semwal@linaro.org \
    /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.