Re: [PATCH] media: videobuf2: Drop minimum allocation requirement of 2 buffers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

Please let me know if you expect a pull request, otherwise I'll consider
you will take this in your tree.

On Mon, Aug 26, 2024 at 08:31:13AM +0200, Hans Verkuil wrote:
> On 26/08/2024 01:24, Laurent Pinchart wrote:
> > When introducing the ability for drivers to indicate the minimum number
> > of buffers they require an application to allocate, commit 6662edcd32cc
> > ("media: videobuf2: Add min_reqbufs_allocation field to vb2_queue
> > structure") also introduced a global minimum of 2 buffers. It turns out
> > this breaks the Renesas R-Car VSP test suite, where a test that
> > allocates a single buffer fails when two buffers are used.
> > 
> > One may consider debatable whether test suite failures without failures
> > in production use cases should be considered as a regression, but
> > operation with a single buffer is a valid use case. While full frame
> > rate can't be maintained, memory-to-memory devices can still be used
> > with a decent efficiency, and requiring applications to allocate
> > multiple buffers for single-shot use cases with capture devices would
> > just waste memory.
> > 
> > For those reasons, fix the regression by dropping the global minimum of
> > buffers. Individual drivers can still set their own minimum.
> > 
> > Fixes: 6662edcd32cc ("media: videobuf2: Add min_reqbufs_allocation field to vb2_queue structure")
> > Cc: stable@xxxxxxxxxxxxxxx
> > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
> 
> Reviewed-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
> 
> > ---
> >  drivers/media/common/videobuf2/videobuf2-core.c | 7 -------
> >  1 file changed, 7 deletions(-)
> > 
> > diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
> > index 500a4e0c84ab..29a8d876e6c2 100644
> > --- a/drivers/media/common/videobuf2/videobuf2-core.c
> > +++ b/drivers/media/common/videobuf2/videobuf2-core.c
> > @@ -2632,13 +2632,6 @@ int vb2_core_queue_init(struct vb2_queue *q)
> >  	if (WARN_ON(q->supports_requests && q->min_queued_buffers))
> >  		return -EINVAL;
> >  
> > -	/*
> > -	 * The minimum requirement is 2: one buffer is used
> > -	 * by the hardware while the other is being processed by userspace.
> > -	 */
> > -	if (q->min_reqbufs_allocation < 2)
> > -		q->min_reqbufs_allocation = 2;
> > -
> >  	/*
> >  	 * If the driver needs 'min_queued_buffers' in the queue before
> >  	 * calling start_streaming() then the minimum requirement is
> > 
> > base-commit: a043ea54bbb975ca9239c69fd17f430488d33522

-- 
Regards,

Laurent Pinchart




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux