From: Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
To: Ezequiel Garcia
<ezequiel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>,
linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Mauro Carvalho Chehab
<mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Maxime Ripard
<maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>,
Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
Marco Franchi <marco.franchi-3arQi8VN3Tc@public.gmane.org>,
Icenowy Zheng <icenowy-h8G6r0blFSE@public.gmane.org>,
Hans Verkuil <hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>,
Keiichi Watanabe
<keiichiw-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
Jonathan Corbet <corbet-T1hC0tSOHrs@public.gmane.org>,
Smitha T Murthy
<smitha.t-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Tom Saeger <tom.saeger-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
Andrzej Hajda <a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
"David S . Miller"
<davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>,
Greg Kroah-Hartman
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
Randy Dunlap <rdunlap-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
Geert Uytterhoeven
<geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>,
Laurent Pinchart
<laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>,
Jacob Chen <jacob-chen-fyOeoxGR3m/QT0dZR+AlfA@public.gmane.org>,
Neil Armstrong
<narmstrong-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>,
Benoit
Subject: Re: [PATCH v5 18/22] media: platform: Add Sunxi-Cedrus VPU decoder driver
Date: Fri, 13 Jul 2018 10:40:58 +0200 [thread overview]
Message-ID: <2a64aec733392cd15d87b53a268fb8328af0a82c.camel@bootlin.com> (raw)
In-Reply-To: <e31090c371ae7f7999b0aa983a20f33451cc89fb.camel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2801 bytes --]
Hi,
On Tue, 2018-07-10 at 16:57 -0300, Ezequiel Garcia wrote:
> Hey Paul,
>
> My comments on v4 of course apply here as well.
Yes, it seems that most of your comments were not already adressed by
this v5. I will answer your remarks and suggestions on the v4 thread.
> One other thing...
>
> On Tue, 2018-07-10 at 10:01 +0200, Paul Kocialkowski wrote:
> > This introduces the Sunxi-Cedrus VPU driver that supports the VPU
> > found
> > in Allwinner SoCs, also known as Video Engine. It is implemented
> > through
> > a v4l2 m2m decoder device and a media device (used for media
> > requests).
> > So far, it only supports MPEG2 decoding.
> >
> > Since this VPU is stateless, synchronization with media requests is
> > required in order to ensure consistency between frame headers that
> > contain metadata about the frame to process and the raw slice data
> > that
> > is used to generate the frame.
> >
> > This driver was made possible thanks to the long-standing effort
> > carried out by the linux-sunxi community in the interest of reverse
> > engineering, documenting and implementing support for Allwinner VPU.
> >
> > Signed-off-by: Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
> >
>
> [..]
> > +
> > +static irqreturn_t cedrus_bh(int irq, void *data)
> > +{
> > + struct cedrus_dev *dev = data;
> > + struct cedrus_ctx *ctx;
> > +
> > + ctx = v4l2_m2m_get_curr_priv(dev->m2m_dev);
> > + if (!ctx) {
> > + v4l2_err(&dev->v4l2_dev,
> > + "Instance released before the end of
> > transaction\n");
> > + return IRQ_HANDLED;
> > + }
> > +
> > + v4l2_m2m_job_finish(ctx->dev->m2m_dev, ctx->fh.m2m_ctx);
> > +
>
> I don't like the fact that v4l2_m2m_job_finish calls .device_run
> reentrantly. Let me try to make v4l2_m2m_job_finish() safe to be called
> in atomic context, so hopefully drivers can just call it in the top-
> half.
Thanks for your patches in this direction, I will try them and hopefully
base our next Sunxi-Cedrus version on them, if it seems that this
framework change will be picked-up by maintainers.
> You are returning the buffers in the top-half, so this is just a matter
> or better design, not a performance improvement.
This is definitely a nice design improvement IMO (if not only for
avoiding reentrancy)!
And this reduces our code path between starting decoding and userspace
notification that decoding finished. Starting the worker thread is no
longer required before notifying userspace, so I think we are going to
see performance improvements from this. Hopefully, the worker thread
will run while userspace is busy preparing the next frame, so this
should work a lot better for us!
Cheers,
Paul
--
Paul Kocialkowski, Bootlin (formerly Free Electrons)
Embedded Linux and kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2018-07-13 8:40 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-10 8:00 [PATCH v5 00/22] Sunxi-Cedrus driver for the Allwinner Video Engine, using media requests Paul Kocialkowski
[not found] ` <20180710080114.31469-1-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 8:00 ` [PATCH v5 01/22] v4l2-ctrls: add v4l2_ctrl_request_hdl_find/put/ctrl_find functions Paul Kocialkowski
2018-07-10 8:00 ` [PATCH v5 02/22] fixup! " Paul Kocialkowski
[not found] ` <20180710080114.31469-3-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 8:07 ` Geert Uytterhoeven
[not found] ` <CAMuHMdVgJuK5G0+szV0BAWDBybxWV0iDWE5kZKuTdgNiGjpnEg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-10 8:13 ` Paul Kocialkowski
[not found] ` <5adf8a6aa70fd6f7f4326ccb068b66d6221d8d8b.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 8:17 ` Hans Verkuil
[not found] ` <eb5fb671-4589-e0cf-5385-84a5cc912905-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-07-10 8:21 ` Paul Kocialkowski
2018-07-10 8:00 ` [PATCH v5 03/22] dt-bindings: sram: sunxi: Introduce new A10 binding for system-control Paul Kocialkowski
2018-07-10 14:02 ` Chen-Yu Tsai
[not found] ` <20180710080114.31469-4-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-11 8:34 ` Maxime Ripard
2018-07-10 8:00 ` [PATCH v5 04/22] dt-bindings: sram: sunxi: Add A13, A20, A23 and H3 dedicated bindings Paul Kocialkowski
[not found] ` <20180710080114.31469-5-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:36 ` Chen-Yu Tsai
[not found] ` <CAGb2v65MO9xmKQz5LuydwqwvVB-_bbM=FeqbsRwJbh-5km9XCQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-11 8:46 ` Maxime Ripard
2018-07-10 8:00 ` [PATCH v5 05/22] dt-bindings: sram: sunxi: Populate valid sections compatibles Paul Kocialkowski
[not found] ` <20180710080114.31469-6-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:47 ` Chen-Yu Tsai
[not found] ` <CAGb2v64Na1Mq0=-z5Haq=sgggRPHNHVZ-6fFczxb3EESAzZ=XA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-11 8:55 ` Maxime Ripard
2018-07-10 8:00 ` [PATCH v5 06/22] soc: sunxi: sram: Add dt match for the A10 system-control compatible Paul Kocialkowski
[not found] ` <20180710080114.31469-7-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:48 ` Chen-Yu Tsai
2018-07-11 8:35 ` Maxime Ripard
2018-07-10 8:00 ` [PATCH v5 07/22] drivers: soc: sunxi: Add support for the C1 SRAM region Paul Kocialkowski
[not found] ` <20180710080114.31469-8-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:49 ` Chen-Yu Tsai
2018-07-10 8:01 ` [PATCH v5 08/22] ARM: dts: sun4i-a10: Use system-control compatible Paul Kocialkowski
[not found] ` <20180710080114.31469-9-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:52 ` Chen-Yu Tsai
[not found] ` <CAGb2v65JP8fBvD6Sbexjg2cv5AXVufWxjMVuOPa7J1A9qQjZ2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-10 14:58 ` Maxime Ripard
2018-07-10 8:01 ` [PATCH v5 09/22] ARM: dts: sun5i: Use most-qualified system control compatibles Paul Kocialkowski
2018-07-10 14:53 ` [linux-sunxi] " Chen-Yu Tsai
[not found] ` <CAGb2v64HbpvJhy5KQOepc61nU7NECaWMPvhZ16dk5hJXiPBHxA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-11 9:01 ` Maxime Ripard
2018-07-10 8:01 ` [PATCH v5 10/22] ARM: dts: sun7i-a20: " Paul Kocialkowski
[not found] ` <20180710080114.31469-11-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:54 ` Chen-Yu Tsai
2018-07-10 8:01 ` [PATCH v5 11/22] ARM: sun5i: Add support for the C1 SRAM region with the SRAM controller Paul Kocialkowski
[not found] ` <20180710080114.31469-12-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 14:56 ` Chen-Yu Tsai
[not found] ` <CAGb2v65swXpLwAo3M9X=MJeVmUrjT=FPFZxp=eCzMrfopqHKjA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-11 9:08 ` Maxime Ripard
2018-07-10 8:01 ` [PATCH v5 12/22] ARM: sun7i-a20: " Paul Kocialkowski
[not found] ` <20180710080114.31469-13-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-11 9:11 ` Maxime Ripard
2018-07-10 8:01 ` [PATCH v5 13/22] ARM: sun8i-a23-a33: Add SRAM controller node and C1 SRAM region Paul Kocialkowski
[not found] ` <20180710080114.31469-14-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-11 9:14 ` Maxime Ripard
2018-07-10 8:01 ` [PATCH v5 14/22] ARM: sun8i-h3: " Paul Kocialkowski
[not found] ` <20180710080114.31469-15-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-11 9:15 ` Maxime Ripard
2018-07-10 8:01 ` [PATCH v5 15/22] media: v4l: Add definitions for MPEG2 slice format and header metadata Paul Kocialkowski
2018-07-10 8:01 ` [PATCH v5 16/22] media: v4l: Add definition for Allwinner's MB32-tiled NV12 format Paul Kocialkowski
2018-07-10 8:01 ` [PATCH v5 17/22] dt-bindings: media: Document bindings for the Sunxi-Cedrus VPU driver Paul Kocialkowski
2018-07-10 8:01 ` [PATCH v5 18/22] media: platform: Add Sunxi-Cedrus VPU decoder driver Paul Kocialkowski
[not found] ` <20180710080114.31469-19-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 8:42 ` Maxime Ripard
2018-07-24 14:56 ` Paul Kocialkowski
2018-07-10 19:57 ` Ezequiel Garcia
[not found] ` <e31090c371ae7f7999b0aa983a20f33451cc89fb.camel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2018-07-13 8:40 ` Paul Kocialkowski [this message]
2018-07-10 8:01 ` [PATCH v5 19/22] ARM: dts: sun5i: Add Video Engine and reserved memory nodes Paul Kocialkowski
2018-07-10 8:01 ` [PATCH v5 20/22] ARM: dts: sun7i-a20: " Paul Kocialkowski
[not found] ` <20180710080114.31469-21-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-10 9:23 ` Maxime Ripard
2018-07-13 8:28 ` Paul Kocialkowski
2018-07-10 8:01 ` [PATCH v5 21/22] ARM: dts: sun8i-a33: " Paul Kocialkowski
2018-07-10 8:01 ` [PATCH v5 22/22] ARM: dts: sun8i-h3: " Paul Kocialkowski
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=2a64aec733392cd15d87b53a268fb8328af0a82c.camel@bootlin.com \
--to=paul.kocialkowski-ldxbnhwyfcjbdgjk7y7tuq@public.gmane.org \
--cc=a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=corbet-T1hC0tSOHrs@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=ezequiel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org \
--cc=geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org \
--cc=icenowy-h8G6r0blFSE@public.gmane.org \
--cc=jacob-chen-fyOeoxGR3m/QT0dZR+AlfA@public.gmane.org \
--cc=keiichiw-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=marco.franchi-3arQi8VN3Tc@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org \
--cc=mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=narmstrong-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
--cc=rdunlap-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=smitha.t-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=tom.saeger-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=wens-jdAy2FN1RRM@public.gmane.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 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).