Performance issue with HD Video cam

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

 



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.

One solution I was looking at would be to have the UVC driver use
dma_alloc_noncoherent() instead of usb_alloc_coherent(). The problem
then is that the UVC driver would have to invalidate the buffers
before submission and this seems very platform specific. Any
suggestions would be greatly appreciated.

Thanks
Al Cooper
--
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