From: Sergey Senozhatsky <senozhatsky@chromium.org>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>,
Hans Verkuil <hans.verkuil@cisco.com>,
Tomasz Figa <tfiga@chromium.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Kyungmin Park <kyungmin.park@samsung.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Sakari Ailus <sakari.ailus@iki.fi>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Pawel Osciak <posciak@chromium.org>,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH 02/15] videobuf2: handle V4L2 buffer cache flags
Date: Wed, 22 Jan 2020 10:39:37 +0900 [thread overview]
Message-ID: <20200122013937.GC149602@google.com> (raw)
In-Reply-To: <ada2381c-2c1c-17c3-c190-48439ae1657a@xs4all.nl>
Hi,
Sorry for the delayed.
On (20/01/10 11:24), Hans Verkuil wrote:
> On 12/17/19 4:20 AM, Sergey Senozhatsky wrote:
> > Set video buffer cache management flags corresponding to V4L2 cache
> > flags.
> >
> > Both ->prepare() and ->finish() cache management hints should be
> > passed during this stage (buffer preparation), because there is no
> > other way for user-space to skip ->finish() cache flush.
> >
> > There are two possible alternative approaches:
> > - The first one is to move cache sync from ->finish() to dqbuf().
> > But this breaks some drivers, that need to fix-up buffers before
> > dequeueing them.
> >
> > - The second one is to move ->finish() call from ->done() to dqbuf.
>
> Please combine this patch with patch 13/15!
OK.
[..]
> > }
> >
> > +static void set_buffer_cache_hints(struct vb2_queue *q,
> > + struct vb2_buffer *vb,
> > + struct v4l2_buffer *b)
> > +{
> > + vb->need_cache_sync_on_prepare = 1;
> > +
> > + if (q->dma_dir != DMA_TO_DEVICE)
>
> What should be done when dma_dir == DMA_BIDIRECTIONAL?
Well, ->need_cache_sync_on_prepare/->need_cache_sync_on_finish are set,
by default. If the queue supports user-space cache hints (driver has
set ->allow_cache_hints), then user-space can override cache behavior.
We probably cannot enforce any other behavior here. Am I missing
something?
> > + vb->need_cache_sync_on_finish = 1;
> > + else
> > + vb->need_cache_sync_on_finish = 0;
> > +
> > + if (!q->allow_cache_hints)
> > + return;
> > +
> > + if (b->flags & V4L2_BUF_FLAG_NO_CACHE_INVALIDATE)
> > + vb->need_cache_sync_on_finish = 0;
> > +
> > + if (b->flags & V4L2_BUF_FLAG_NO_CACHE_CLEAN)
> > + vb->need_cache_sync_on_prepare = 0;
> > +}
-ss
next prev parent reply other threads:[~2020-01-22 1:39 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-17 3:20 [RFC][PATCH 00/15] Implement V4L2_BUF_FLAG_NO_CACHE_* flags Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 01/15] videobuf2: add cache management members Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 02/15] videobuf2: handle V4L2 buffer cache flags Sergey Senozhatsky
2020-01-10 10:24 ` Hans Verkuil
2020-01-22 1:39 ` Sergey Senozhatsky [this message]
2020-01-22 2:53 ` Sergey Senozhatsky
2020-01-28 4:35 ` Tomasz Figa
2019-12-17 3:20 ` [RFC][PATCH 03/15] videobuf2: add V4L2_FLAG_MEMORY_NON_CONSISTENT flag Sergey Senozhatsky
2020-01-10 9:36 ` Hans Verkuil
2020-01-10 9:46 ` Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 04/15] videobuf2: add queue memory consistency parameter Sergey Senozhatsky
2020-01-10 9:47 ` Hans Verkuil
2020-01-22 2:05 ` Sergey Senozhatsky
2020-01-23 11:02 ` Hans Verkuil
2020-01-24 2:04 ` Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 05/15] videobuf2: handle V4L2_FLAG_MEMORY_NON_CONSISTENT in REQBUFS Sergey Senozhatsky
2020-01-10 9:55 ` Hans Verkuil
2020-01-22 2:18 ` Sergey Senozhatsky
2020-01-22 3:48 ` Sergey Senozhatsky
2020-01-23 11:08 ` Hans Verkuil
2020-01-28 4:45 ` Tomasz Figa
2020-01-28 8:38 ` Hans Verkuil
2019-12-17 3:20 ` [RFC][PATCH 06/15] videobuf2: handle V4L2_FLAG_MEMORY_NON_CONSISTENT in CREATE_BUFS Sergey Senozhatsky
2020-01-10 9:59 ` Hans Verkuil
2020-01-23 3:41 ` Sergey Senozhatsky
2020-01-23 11:41 ` Hans Verkuil
2020-01-24 1:28 ` Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 07/15] videobuf2: factor out planes prepare/finish functions Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 08/15] videobuf2: do not sync caches when we are allowed not to Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 09/15] videobuf2: check ->synced flag in prepare() and finish() Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 10/15] videobuf2: let user-space know when driver supports cache hints Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 11/15] videobuf2: add begin/end cpu_access callbacks to dma-contig Sergey Senozhatsky
2019-12-17 3:20 ` [RFC][PATCH 12/15] videobuf2: add begin/end cpu_access callbacks to dma-sg Sergey Senozhatsky
2020-01-10 10:13 ` Hans Verkuil
2020-01-22 6:37 ` Sergey Senozhatsky
2020-01-28 4:38 ` Tomasz Figa
2020-01-28 8:36 ` Hans Verkuil
2020-01-30 11:02 ` Tomasz Figa
2020-01-30 12:18 ` Hans Verkuil
2020-02-03 10:04 ` Tomasz Figa
2020-02-04 2:50 ` Sergey Senozhatsky
2020-02-06 8:51 ` Tomasz Figa
2019-12-17 3:20 ` [RFC][PATCH 13/15] videobuf2: do not sync buffers for DMABUF queues Sergey Senozhatsky
2020-01-10 10:30 ` Hans Verkuil
2020-01-22 5:05 ` Sergey Senozhatsky
2020-01-23 11:35 ` Hans Verkuil
2020-01-24 2:25 ` Sergey Senozhatsky
2020-01-24 7:32 ` Sergey Senozhatsky
2020-01-28 7:22 ` Tomasz Figa
2020-01-28 7:34 ` Sergey Senozhatsky
2020-01-28 7:19 ` Tomasz Figa
2020-01-28 8:47 ` Hans Verkuil
2019-12-17 3:20 ` [RFC][PATCH 14/15] videobuf2: don't test db_attach in dma-contig prepare and finish Sergey Senozhatsky
2020-01-10 10:32 ` Hans Verkuil
2019-12-17 3:20 ` [RFC][PATCH 15/15] videobuf2: don't test db_attach in dma-sg " Sergey Senozhatsky
2020-01-08 2:27 ` [RFC][PATCH 00/15] Implement V4L2_BUF_FLAG_NO_CACHE_* flags Sergey Senozhatsky
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=20200122013937.GC149602@google.com \
--to=senozhatsky@chromium.org \
--cc=hans.verkuil@cisco.com \
--cc=hverkuil@xs4all.nl \
--cc=kyungmin.park@samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mchehab@kernel.org \
--cc=posciak@chromium.org \
--cc=sakari.ailus@iki.fi \
--cc=tfiga@chromium.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.