Re: usb video capture issue due to uvc_complete callback spends more time

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

 



On Thursday 04 April 2013 19:49:26 Felipe Balbi wrote:
> On Thu, Apr 04, 2013 at 04:52:15PM +0200, Laurent Pinchart wrote:
> > > Laurent/Ming Lei
> > > 
> > > >>>>> Since the uvc_video_complete() callback handler called from
> > > >>>>> interrupt
> > > >>>>> context, video post processing or memcpy can be deferred to
> > > >>>>> tasklet or
> > > >>>>> bottom half, rather than doing it in interrupt context.
> > > >>>> 
> > > >>>> If that's the only way to fix the issue, yes. However, given your
> > > >>>> really poor memcpy() performances, I don't think you will be able
> > > >>>> to sustain the incoming video bandwidth. The driver would soon run
> > > >>>> out of URBs.
> > > >>> 
> > > >>> I agree with you, let me check whether memcpy is the bottle here,
> > > >> 
> > > >> typo mistake, read as "bottle-neck"
> > > >> 
> > > >> I will try to get profile info on this. But in general it would be
> > > >> good to move post processing to bottom half which helps to reduce
> > > >> interrupt latency.
> > 
> > In general it is, but the amount of data to be copied is pretty small, so
> > I'm not sure if it's worth it for the uvcvideo driver. If reading from
> > coherent memory is that slow you won't be able to sustain the required
> > bandwidth, regardless of whether the memcpy is performed in interrupt
> > context or not. The driver will be unusable in both case.
> 
> why do we even have that memcpy() there ? Why don't we use the same
> buffer for uvc_buffer->buf and urb->buffer ? That would cut all issues
> to a halt. Anything which prevents a zero-copy implementation ?

Per-packet headers that need to be interpreted and then removed.

-- 
Regards,

Laurent Pinchart

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux