All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org, posciak@chromium.org,
	m.szyprowski@samsung.com, kyungmin.park@samsung.com,
	hverkuil@xs4all.nl, sumit.semwal@linaro.org, robdclark@gmail.com,
	daniel.vetter@ffwll.ch, labbott@redhat.com,
	laurent.pinchart@ideasonboard.com
Subject: [RFC v4 03/18] vb2: Move cache synchronisation from buffer done to dqbuf handler
Date: Mon,  8 May 2017 18:03:15 +0300	[thread overview]
Message-ID: <1494255810-12672-4-git-send-email-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <1494255810-12672-1-git-send-email-sakari.ailus@linux.intel.com>

The cache synchronisation may be a time consuming operation and thus not
best performed in an interrupt which is a typical context for
vb2_buffer_done() calls. This may consume up to tens of ms on some
machines, depending on the buffer size.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
---
 drivers/media/v4l2-core/videobuf2-core.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c
index 8bf3369..e866115 100644
--- a/drivers/media/v4l2-core/videobuf2-core.c
+++ b/drivers/media/v4l2-core/videobuf2-core.c
@@ -889,7 +889,6 @@ void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state)
 {
 	struct vb2_queue *q = vb->vb2_queue;
 	unsigned long flags;
-	unsigned int plane;
 
 	if (WARN_ON(vb->state != VB2_BUF_STATE_ACTIVE))
 		return;
@@ -910,10 +909,6 @@ void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state)
 	dprintk(4, "done processing on buffer %d, state: %d\n",
 			vb->index, state);
 
-	/* sync buffers */
-	for (plane = 0; plane < vb->num_planes; ++plane)
-		call_void_memop(vb, finish, vb->planes[plane].mem_priv);
-
 	spin_lock_irqsave(&q->done_lock, flags);
 	if (state == VB2_BUF_STATE_QUEUED ||
 	    state == VB2_BUF_STATE_REQUEUEING) {
@@ -1573,6 +1568,10 @@ static void __vb2_dqbuf(struct vb2_buffer *vb)
 
 	vb->state = VB2_BUF_STATE_DEQUEUED;
 
+	/* sync buffers */
+	for (i = 0; i < vb->num_planes; ++i)
+		call_void_memop(vb, finish, vb->planes[i].mem_priv);
+
 	/* unmap DMABUF buffer */
 	if (q->memory == VB2_MEMORY_DMABUF)
 		for (i = 0; i < vb->num_planes; ++i) {
-- 
2.7.4

  parent reply	other threads:[~2017-05-08 15:05 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 ` Sakari Ailus [this message]
2018-10-05  4:34   ` [RFC v4 03/18] vb2: Move cache synchronisation from buffer done to dqbuf handler 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
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=1494255810-12672-4-git-send-email-sakari.ailus@linux.intel.com \
    --to=sakari.ailus@linux.intel.com \
    --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=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.