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]

 



Hi,

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 ?

-- 
balbi

Attachment: signature.asc
Description: Digital signature


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

  Powered by Linux