On Tue, 24 Apr 2001, Martin Diehl wrote:

> There is an IDLE_TIMEOUT = 50 msec used to disable FSBR. In some
> contradiction to its name it is measured from the submission of the
> urb, i.e. does not care whether we are really idle or not.

After being able to do real testing I just want to confirm what I've said
yesterday:

Yes, extending or disabling the IDLE_TIMEOUT makes 64kB sized bulk
transfer always happy - no spurious loss of fullspeed bandwidth with uhci
anymore. As explained in the last posting I do believe this static timeout
is a suboptimal solution - for both uhci flavours.

My suggestions:
- either restarting idle timeout counter whenever some progress is
  detected for the active transfer - if this is possible?
- or changing the timeout from global constant to a new member of
  urb->hcpriv. Using some magic like (10 + transfer_length / 1000 * 5)
  (i.e. 10msec + 5msec/KB) as individual fsbr-timeout. So the transfer
  would loose FSBR-grant if it used less than about 20% of it - which
  wouldn't hurt so much in this case.
  Other numbers are possible of course - f.e. 50msec + 2msec/KB would
  prevent the fsbr-timeout from getting shorter than what it is now (so
  nothing should brake) and still preserve FSBR-grant for a 64kB transfer
  which uses only 40% of maximum bandwidth.

Anyway - sane bulk transfers should not make any asssumptions of bandwidth
they get, so IMHO this is "only" a performance improvement, not a bugfix.

Comments?

Martin


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to