Re: Performance issue with HD Video cam

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

 



On Sun, 31 Jul 2011, Laurent Pinchart wrote:

> Hi Alan,
> 
> On Saturday 30 July 2011 15:03:50 Alan Stern wrote:
> > On Sat, 30 Jul 2011, Ming Lei wrote:
> > > On Sat, Jul 30, 2011 at 7:15 AM, Alan Cooper <alcooperx@xxxxxxxxx> wrote:
> > > > I'm seeing an interesting performance problem when using a USB HD
> > > > Logitech video cam via UVC and I was hoping for some advice on the
> > > > best way to resolve it. When I try to capture video data from the cam
> > > > with a simple test app, I can't keep up with a 720x1440 data stream a
> > > > 10 FPS. I traced the problem down to the fact that the UCV driver ends
> > > > up allocating the USB transfer buffers via usb_alloc_coherent() which,
> > > > on our MIPS system, returns buffers in uncached memory. UVC ends up
> > > > doing a memcpy of the uncached data to the cached UVC buffers and this
> > > > is where the performance is terrible. I did a quick benchmark and
> > > > found that memcpy from uncached memory ran at about 3.5MB/s, instead
> > > > of ~600MB for cached.
> > > 
> > > Sounds like it is a arch dependent problem, and not much related with
> > > usb.
> > 
> > Yes indeed.  Coherent buffers are allocated in uncached memory on some
> > architectures, which makes them very expensive to access.  But other
> > architectures can use cached memory, which makes coherent buffers
> > less expensive than non-coherent ones since no DMA mapping is required.
> > 
> > This makes for a difficult tradeoff.  Historically, I think the balance
> > in USB has been tipped in favor of x86.
> > 
> > For something as time-critical as uvcvideo, it might make sense for the
> > driver to implement both options in arch-dependent code.
> 
> Indeed, that would make sense. Alan (Cooper), what API should uvcvideo use to 
> allocate URB buffers on MIPS platform ?

There are only two APIs.  One is what uvcvideo is already using, the 
other is kmalloc.

Alan Stern

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


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

  Powered by Linux