All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: Nicolas Dufresne <nicolas@ndufresne.ca>,
	Tomasz Figa <tfiga@chromium.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Sebastian Fricke <sebastian.fricke@collabora.com>,
	linux-media@vger.kernel.org,
	Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 03/24] media: videobuf2-v4l2: Warn on holding buffers without support
Date: Thu, 24 Nov 2022 09:57:26 +0100	[thread overview]
Message-ID: <0c65521c-513d-1620-fc17-5011e1269d68@xs4all.nl> (raw)
In-Reply-To: <d8de72b8c9c6252e2ea66d790e4a5c938050fb0a.camel@ndufresne.ca>

On 28/04/2022 15:09, Nicolas Dufresne wrote:
> Le jeudi 28 avril 2022 à 08:12 +0200, Hans Verkuil a écrit :
>> On 27/04/2022 17:08, Nicolas Dufresne wrote:
>>> Le mercredi 27 avril 2022 à 13:31 +0900, Tomasz Figa a écrit :
>>>> Hi Nicolas, Sebastian,
>>>>
>>>> On Tue, Apr 26, 2022 at 9:58 PM Nicolas Dufresne
>>>> <nicolas.dufresne@collabora.com> wrote:
>>>>>
>>>>> From: Sebastian Fricke <sebastian.fricke@collabora.com>
>>>>>
>>>>> Using V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF flag without specifying the
>>>>> subsystem flag VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF, results in
>>>>> silently ignoring it.
>>>>> Warn the user via a debug print when the flag is requested but ignored
>>>>> by the videobuf2 framework.
>>>>>
>>>>> Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com>
>>>>> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
>>>>> Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
>>>>> ---
>>>>>  drivers/media/common/videobuf2/videobuf2-v4l2.c | 7 ++++++-
>>>>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>>>>
>>>>
>>>> Thanks for the patch. Please see my comments inline.
>>>>
>>>>> diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c
>>>>> index 6edf4508c636..812c8d1962e0 100644
>>>>> --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c
>>>>> +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c
>>>>> @@ -329,8 +329,13 @@ static int vb2_fill_vb2_v4l2_buffer(struct vb2_buffer *vb, struct v4l2_buffer *b
>>>>>                  */
>>>>>                 vbuf->flags &= ~V4L2_BUF_FLAG_TIMECODE;
>>>>>                 vbuf->field = b->field;
>>>>> -               if (!(q->subsystem_flags & VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF))
>>>>> +               if (!(q->subsystem_flags & VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF)) {
>>>>> +                       if (vbuf->flags & V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF)
>>>>> +                               dprintk(q, 1,
>>>>> +                                       "Request holding buffer (%d), unsupported on output queue\n",
>>>>> +                                       b->index);
>>>>
>>>> I wonder if we shouldn't just fail such a QBUF operation. Otherwise
>>>> the application would get unexpected behavior from the kernel.
>>>> Although it might be too late to do it now if there are applications
>>>> that rely on this implicit ignore...
>>>
>>> In the context of this patchset, the statu quo seems to be the logical thing to
>>> do. We can raise this up in a separate thread. The side effect is of course
>>> confusing for developers, but it is hard for me to tell if a hard failure may
>>> break an existing software.
>>
>> I am leaning towards returning an error as well. It makes no sense to try
>> to hold on to a buffer when this is not supported.
>>
>> I also thought that it should be enough to rely on the core to clear the
>> flag upon return if it isn't supported, but looking through the vb2 core code
>> it looks like we're not clearing unknown flags at all, so running this for
>> older kernels that do not support holding at all will not clear the flag
>> either.
>>
>> The handling for flags in vb2 can be improved, I think I'll take a look at
>> that myself.
>>
>> I plan to merge this series soon, but will skip this patch for now.
> 
> Ok, no problem. For me, as long as we do something about it, since it was not
> obvious and time consuming to debug.

After thinking some more (it only took me 7 months :-) ) I believe that an error
should be returned and the documentation for V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF
should be updated to mention that it will return EINVAL if set for a queue that
doesn't support this. vb2_queue_or_prepare_buf() is probably the best place for
this check.

Regards,

	Hans

> 
> regards,
> Nicolas
> 
>>
>> Regards,
>>
>> 	Hans
>>
>>>
>>> regards,
>>> Nicolas
>>>
>>>>
>>>> Best regards,
>>>> Tomasz
>>>
>>
> 


  reply	other threads:[~2022-11-24  8:57 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-26 12:57 [PATCH v4 00/24] H.264 Field Decoding Support for Frame-based Decoders Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 01/24] media: doc: Document dual use of H.264 pic_num/frame_num Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 02/24] media: v4l2-mem2mem: Trace on implicit un-hold Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 03/24] media: videobuf2-v4l2: Warn on holding buffers without support Nicolas Dufresne
2022-04-27  4:31   ` Tomasz Figa
2022-04-27 15:08     ` Nicolas Dufresne
2022-04-28  6:12       ` Hans Verkuil
2022-04-28 13:09         ` Nicolas Dufresne
2022-11-24  8:57           ` Hans Verkuil [this message]
2022-04-26 12:57 ` [PATCH v4 04/24] media: h264: Avoid wrapping long_term_frame_idx Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 05/24] media: h264: Use v4l2_h264_reference for reflist Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-05-05  0:42   ` Dmitry Osipenko
2022-05-05  0:42     ` Dmitry Osipenko
2022-05-05  0:42     ` Dmitry Osipenko
2022-05-05  0:42     ` Dmitry Osipenko
2022-04-26 12:57 ` [PATCH v4 06/24] media: h264: Increase reference lists size to 32 Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 07/24] media: h264: Store current picture fields Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 08/24] media: h264: Store all fields into the unordered list Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 09/24] media: v4l2: Trace calculated p/b0/b1 initial reflist Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 10/24] media: h264: Sort p/b reflist using frame_num Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 11/24] media: v4l2: Reorder field reflist Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 12/24] media: rkvdec: Stop overclocking the decoder Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 13/24] media: rkvdec: h264: Fix dpb_valid implementation Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 14/24] media: rkvdec: h264: Fix bit depth wrap in pps packet Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 15/24] media: rkvdec: Move H264 SPS validation in rkvdec-h264 Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 16/24] media: rkvdec: h264: Validate and use pic width and height in mbs Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 17/24] media: rkvdec: h264: Fix reference frame_num wrap for second field Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 18/24] media: rkvdec: Ensure decoded resolution fit coded resolution Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 19/24] media: rkvdec-h264: Add field decoding support Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 20/24] media: rkvdec: Enable capture buffer holding for H264 Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 21/24] media: hantro: Stop using H.264 parameter pic_num Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 22/24] media: hantro: h264: Make dpb entry management more robust Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 23/24] media: hantro: Add H.264 field decoding support Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne
2022-04-28  8:50   ` Hans Verkuil
2022-04-28  8:50     ` Hans Verkuil
2022-04-28 13:10     ` Nicolas Dufresne
2022-04-28 13:10       ` Nicolas Dufresne
2022-04-26 12:57 ` [PATCH v4 24/24] media: hantro: Enable HOLD_CAPTURE_BUF for H.264 Nicolas Dufresne
2022-04-26 12:57   ` Nicolas Dufresne

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=0c65521c-513d-1620-fc17-5011e1269d68@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@kernel.org \
    --cc=nicolas@ndufresne.ca \
    --cc=sebastian.fricke@collabora.com \
    --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.