Re: [videobuf] Query: Condition bytesize limit in videobuf_reqbufs -> buf_setup() call?

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

 



Hi Sergio,

On Thursday 06 May 2010 01:29:54 Aguirre, Sergio wrote:
> > -----Original Message-----
> > From: Mauro Carvalho Chehab [mailto:mchehab@xxxxxxxxxx]
> > Sent: Wednesday, May 05, 2010 6:24 PM
> > To: Aguirre, Sergio
> > Cc: linux-media@xxxxxxxxxxxxxxx
> > Subject: Re: [videobuf] Query: Condition bytesize limit in
> > videobuf_reqbufs -> buf_setup() call?
> > 
> > Aguirre, Sergio wrote:
> > > Hi all,
> > > 
> > > While working on an old port of the omap3 camera-isp driver,
> > > I have faced some problem.
> > > 
> > > Basically, when calling VIDIOC_REQBUFS with a certain buffer
> > > 
> > > Count, we had a software limit for total size, calculated depending on:
> > >   Total bytesize = bytesperline x height x count
> > > 
> > > So, we had an arbitrary limit to, say 32 MB, which was generic.
> > > 
> > > Now, we want to condition it ONLY when MMAP buffers will be used.
> > > Meaning, we don't want to keep that policy when the kernel is not
> > > allocating the space
> > > 
> > > But the thing is that, according to videobuf documentation, buf_setup
> > > is the one who should put a RAM usage limit. BUT the memory type
> > > passed to reqbufs is not propagated to buf_setup, therefore forcing me
> > > to go to a non-standard memory limitation in my reqbufs callback
> > > function, instead of doing it properly inside buf_setup.
> > > 
> > > Is this scenario a good consideration to change buf_setup API, and
> > > propagate buffers memory type aswell?
> > 
> > I don't see any problem on propagating the memory type to buffer_setup,
> > if this is really needed. Yet, I can't see why you would restrict the
> > buffer size to 32 MB on one case, and not restrict the size at all with
> > non-MMAP types.
> 
> Ok, my reason for doing that is because I thought that there should be a
> memory limit in whichever place you're doing the buffer allocations.
> 
> MMAP is allocating buffers in kernel, so kernel should provide a memory
> restriction, if applies.
> 
> USERPTR is allocating buffers in userspace, so userspace should provide a
> memory restriction, if applies.

I agree with the intend here, but not with the current implementation which 
has a hardcoded arbitrary limit. Do you think it would be possible to compute 
a meaningful default limit in the V4L2 core, with a way for userspace to 
modify it (with root privileges of course) ?

-- 
Regards,

Laurent Pinchart
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux