Re: speeding up ugen by an order of magnitude.

From: Bernd Walter <ticso_at_cicely12.cicely.de>
Date: Wed, 7 Jul 2004 11:13:12 +0200
On Tue, Jul 06, 2004 at 04:32:28PM -0700, Julian Elischer wrote:
> 
> So, we had a device that we access through ugen.
> 
> the manufacturer said we should get the transaction in 3 seconds 
> and wiindows and linux did, but FreeBSD got it in 15 seconds.
> I suspect since the code is the same, NetBSD would get the same result..
> 
> lokking at it I noticed that ugen does everything in 1K bits,
> which is ok for USB1, but a bit silly for USB2.

Mmm - 128k is very big - consider that you may have hundrets of
ugen bulk pipes open - all with outstanding reads.
This would eat up kernel memory quite fast.

The problem is lost bus time between finishing an xfer and issuing
the next one - consider that part of this lost time is OS dependend
latency and in fact might be limited to FreeBSD.

What about those options:
- limit the allocated memory to the user request so we don't take the
  whole 128k if not reuired.
- Do interleaving with 2 or more xfers if the read request is known to
  take more xfers.

Naturally the situation with bulk writes is the same.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd_at_bwct.de                                  info_at_bwct.de
Received on Wed Jul 07 2004 - 07:14:27 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:00 UTC