Re: V4L2 - RFC: DMA to userspace API

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



Gerd Knorr wrote:
> 
> > > It makes sense to me to pass the buffer on QBUF, not QUERYBUF, and no
> > > new REQBUFS=0 semantics is required. I understand the desire to save
> > > locking and unlocking the memory each time it is used, but don't think
> > > it's a significant overhead considering the memcpy() that is being
> > > avoided.
> >
> > I don't agree here.  If I remember correctly, the process of locking
> > down the user memory can be VERY expensive.  Remember - it's got to be
> > paged in if in is not already present in physical memory.
> 
> I don't see the paging in as a big problem.  If you do streaming
> capture your buffers should'nt get swapped out as they are accessed
> all the time (as long as you are using the same set of buffers).

If you're doing streaming capture with say 30 buffers (1 second), and
writing to file, I am pretty sure you would end up having for buffers
swapped out fairly regularly.

> Remaining overhead is page table lookups + (for bt848) risc code
> generation.  Even that can be reduced.  We could use a flag for that.
> If a application plans to reuse that buffer some hint flag can be set,
> and the driver can keep the buffer locked down then.  Not forever
> (that would allow a nice DoS), but for - say - a second.  Long enouth
> that we don't have to lock it again if the app does streaming
> capture.
> 
>   Gerd

Now this is starting to look a lot uglier than simply modifying the
REQBUFS semantics to allow freeing of the buffers explicitly (which you
still require anyway).

-justin





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux