speeding up ugen by an order of magnitude.
Bernd Walter
ticso at cicely12.cicely.de
Wed Jul 7 02:14:28 PDT 2004
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
More information about the freebsd-current
mailing list