On Thu, 25 May 2006, Norbert Preining wrote:

> Hi all!
> 
> On Don, 25 Mai 2006, Alan Stern wrote:
> > If you want to try an interesting test, go back to the
> > usb_stor_invoke_transport() routine in transport.c, just above the
> > Handle_Errors line.  Where it says:
> 
> Ok, I did this:
> 
> >     /* Did we transfer less than the minimum amount required? */
> >     if (srb->result == SAM_STAT_GOOD &&
> >                     srb->request_bufflen - srb->resid < srb->underflow)
>       {
> >             srb->result = (DID_ERROR << 16) | (SUGGEST_RETRY << 24);
>               msleep(1000);
>       }
> 
> and rerun the test with usbmon, log file
>       http://www.logic.at/people/preining/usbmon.bus5.new.out.bz2
> 
> I found three instances of the -104, although in my log file there were
> only two resets. THe first is quite at the beginning, then long
> transfers without a problem, then reset.
> 
> Maybe this helps. 

Evidently it did not help, because you still got those resets.  It looks 
like there was going to be a third reset just after the end of the log 
file.

The only thing I can think of is to issue the reset immediately instead of
waiting 30 seconds for the next command to time out.  That should improve
your throughput!  Just replace your "msleep(1000)" line with "goto
Handle_Errors".

I don't know whether such a change would be acceptable in general.  
Perhaps it would, especially if we jump to Handle_Errors only for data-OUT
transfers.

Alan Stern



-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
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