On Mon, Jun 04, 2001 at 12:12:00PM +0000, Pavel Machek wrote:
<...> 
> > UHCI runs its descriptor chain only once a millisecond, which is bad, if you
> > use breadth access mode to provide fair bandwith. Then each transfer can
> > only get one TD (64byte) in one millisecond through. To avoid that, the
> > bandwith reclamation is used, a nice word for a design/concept flaw, it
> > simply loops the descriptor chain. That causes a high PCI load, even with no
> > transfers in-progress, the descriptors are always read via PCI.
> > Unfortunately, there's no delay-TD or such...
> 
> Would it be possible not to make loop, but to chain 16 TDs instead? 16 TDs
> mean 1KB, 1KB per milisecond is more than enough?

The problem is the queue, which has to contain all TDs belonging to one
transfer, so that the TDs are in strict sequence and an error in one TD can
deactivate the queue. You can run all queues in parallel (breadth mode) or
one queue after another (depth mode). The depth mode has a high bandwidth,
but doesn't distribute various transfers equally, it's more burst like. And
accoring to a decision a long time ago, we switched to depth mode, which
needs the reclamation loop to get high bandwidth for one transfer.

> About delay-TD idea: would it be possible to make low-speed transmit
> to nonexisting device? That should delay it just well :-).

Ouch ;-)

-- 
         Georg Acher, [EMAIL PROTECTED]         
         http://www.in.tum.de/~acher/
          "Oh no, not again !" The bowl of petunias          

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

Reply via email to