Re: speeding up ugen by an order of magnitude.

From: Kenneth D. Merry <ken_at_freebsd.org>
Date: Wed, 7 Jul 2004 22:58:52 -0600
On Wed, Jul 07, 2004 at 14:53:38 -0400, Robert Watson wrote:
> On Wed, 7 Jul 2004, Julian Elischer wrote:
> > Yes that's why I brought it up here.  That was only a "proof-of-concept"
> > that showed that teh slowdown was coming from the fact that the ugen was
> > only pushing one KB of data per frame (1mSec) interrupt. (it was pinned
> > at 1MB/sec)  The correct answer may be to do what pould-henning
> > suggested and use teh physio facility to do this. I considerred that
> > originally but there is overhead in that too, and it is also possible
> > that the NetBSD and FreeBSD physio facilities have diverged enough to
> > make this non trivial as far as keeping diffs to a minimum. (It is after
> > all NetBSD code). 
> 
> You might want to take a look at the ZERO_COPY socket send code, as well
> as the sendfile() code...  FYI, I'm in the process of reformulating some
> of the zero copy send code on the advice of Alan Cox to make it less
> strict about alignment, etc.

That would be pretty cool.  I'm interested to see what you guys have come
up with. :)  The size and alignment restrictions make it less effective than
it could be.  (Depends on the application, obviously.)

The problems are worse on receive, but then most cards can't do the header
splitting necessary for zero copy receive.

Ken
-- 
Kenneth Merry
ken_at_FreeBSD.ORG
Received on Thu Jul 08 2004 - 02:59:15 UTC

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