On Thu, 5 Jul 2007, Matthew Dharm wrote:

> On Mon, Jul 02, 2007 at 09:15:03AM +0200, Oliver Neukum wrote:
> > Am Montag, 2. Juli 2007 schrieb Alan Stern:
> > > If you look at usbmon logs of real usb-storage data transfers you'll
> > > see that multi-page sg elements occur quite frequently.  (Of course,
> > > that doesn't prevent us from transferring only one page per URB.)
> > 
> > OK, but the storage driver allocates the URBs on the fly. If we change
> > that to preallocation we need to have enough URBs for the worst case.
> 
> Of course, in the storage case we control the worst-case.  By adjusting the
> parameter which controls how long a sg list the SCSI core will send us, we
> can effectively limit the worst-case number of URBs needed.

But we don't control max_sectors, so we can't effectively limit the 
total transfer size.

While I agree that it would be nice to preallocate enough URBs and
memory that only one IRQ would be needed, I don't see anything wrong
with preallocating a reasonably large amount and re-using it as needed.  
So we might get 3 or 4 times as many IRQs for particularly large
transfers; that doesn't seem too bad.  It's a justifiable time-space
tradeoff.

A reasonably large amount might be enough for a 32 KB transfer at full
speed or a 120 KB transfer (the default maximum) at high speed.  Or we 
might want to take into account the actual storage requirements of the 
HCDs; UHCI is much the worst in that regard.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to