Duncan Sands wrote:
(1) is there any speed advantage to submitting multiple urbs to a bulk endpoint, as compared to using a single urb which is resubmitted in its completion handler?
Yes, most noticeably at high speed where the time to report the completion and resubmit the urb can easily be enough time to transfer tens of kbytes. For full speed devices, that same delay would cost maybe 256 bytes of wasted throughput.
Example: in 2.5 usb-storage uses new usb_sg_*() primitives, and a simple "hdparm -tT /dev/sda1" easily shows transfer rates doubling (or more, depending on the hardware).
(2) is there a noticeable speed difference if you send a buffer in many small pieces (-> many urb submissions) as compared to sending it in one big piece (-> one urb submission)?
Passing N times through the code, rather than one, will take more CPU time ... likely not not significant on its own, but other factors may come into play. Like queueing, the costs of DMA mapping buffers (talk to IOMMU?), the costs of merging into a single buffer, and so on. You may need to merge buffers to make sure packet boundaries appear only in places it's OK for your protocol, though. - Dave ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
