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

Reply via email to