linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 0/3] media: Ensure access to dma-buf-imported reference buffers
@ 2019-01-14 13:38 Paul Kocialkowski
  2019-01-14 13:38 ` [PATCH RFC 1/4] media: vb2: Add helpers to access unselected buffers Paul Kocialkowski
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Paul Kocialkowski @ 2019-01-14 13:38 UTC (permalink / raw)
  To: linux-media, linux-kernel, devel, linux-arm-kernel, linux-sunxi
  Cc: Hans Verkuil, Alexandre Courbot, Pawel Osciak, Maxime Ripard,
	Randy Li, Thomas Petazzoni, Tomasz Figa, Paul Kocialkowski,
	Kyungmin Park, Laurent Pinchart, Philipp Zabel, Sakari Ailus,
	Mauro Carvalho Chehab, Ezequiel Garcia, Marek Szyprowski

This is a first attempt at implementing proper access to buffers
imported with dma-buf and used as reference frames for decoding
subsequent frames.

The main concern associated with this scenario was that memory could be
liberated while the buffer is not in a queued state. After careful
checking, it appears that this is not the case as the refcount is
always increased when importing the buffer. It is only decreased when
the same buffer is queued with a different dma-buf fd or when all
buffers are liberated. In the meantime (when decoding using the frame as
a reference happens), the buffer is thus guaranteed to stay alive.

However, buffers imported with dma-buf require calls to dma-buf-specific
map/unmap memops before they are accessed. This introduces the plumbing
for allowing that.

One major issue is that it cannot be done in atomic context, where
the job is marked as completed. To solve this, a new m2m operation
(job_done) is introduced which allows releasing access to the
reference buffers from the m2m worker thread.

Since this series touches the core of vb2 and m2m and may not be the
best way to implement this, it is marked as RFC.

This series is based on the series starting with:
  media: cedrus: Cleanup duplicate declarations from cedrus_dec header

Paul Kocialkowski (4):
  media: vb2: Add helpers to access unselected buffers
  media: v4l2-mem2mem: Add an optional job_done operation
  media: cedrus: Request access to reference buffers when decoding
  media: cedrus: Remove completed item from TODO list (dma-buf
    references)

 .../media/common/videobuf2/videobuf2-core.c   | 46 +++++++++++++++++++
 drivers/media/v4l2-core/v4l2-mem2mem.c        |  8 +++-
 drivers/staging/media/sunxi/cedrus/TODO       |  5 --
 drivers/staging/media/sunxi/cedrus/cedrus.c   |  1 +
 drivers/staging/media/sunxi/cedrus/cedrus.h   |  1 +
 .../staging/media/sunxi/cedrus/cedrus_dec.c   | 18 ++++++++
 .../staging/media/sunxi/cedrus/cedrus_dec.h   |  1 +
 .../staging/media/sunxi/cedrus/cedrus_mpeg2.c |  8 ++++
 include/media/v4l2-mem2mem.h                  |  4 ++
 include/media/videobuf2-core.h                | 15 ++++++
 10 files changed, 100 insertions(+), 7 deletions(-)

-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-01-15  9:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-14 13:38 [PATCH RFC 0/3] media: Ensure access to dma-buf-imported reference buffers Paul Kocialkowski
2019-01-14 13:38 ` [PATCH RFC 1/4] media: vb2: Add helpers to access unselected buffers Paul Kocialkowski
2019-01-14 13:38 ` [PATCH RFC 2/4] media: v4l2-mem2mem: Add an optional job_done operation Paul Kocialkowski
2019-01-15  9:42   ` Ezequiel Garcia
2019-01-14 13:38 ` [PATCH RFC 3/4] media: cedrus: Request access to reference buffers when decoding Paul Kocialkowski
2019-01-14 13:38 ` [PATCH RFC 4/4] media: cedrus: Remove completed item from TODO list (dma-buf references) Paul Kocialkowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).