Subject: Re: NetBSD i386 bounce-buffer non-feature [was Re: Memory leak?]
To: John Dyson <dyson@freefall.freebsd.org>
From: Per Fogelstrom <pefo@enea.se>
List: current-users
Date: 02/11/1996 11:07:35
> I don't understand this statement.  The FreeBSD implementation exacts
> a performance hit on a page-by-page basis only.  If the card does not
> need bouncing, the overhead is only an if statement.  If the card
> needs bouncing, the physical address of each page in the buffer is checked
> (very low cost on an X86).  If no bouncing is needed, that is the extent
> of the overhead.  If bouncing is required, the appropriate frobbing is
> done to minimize copying.  Only pages that are not addressable in the
> 16MB are bounced.
> 
which was about what i meant. being a little smart about "bouncing"
would avoid it when possible and do it when necessary. allocating
buffers in preferd memory, well FreeBSD has a unified pool so that
would affect not only the driver. but as long as NetBSD has a pre-
allocated buffer pool... the impact on performace could then
be as low as possible.

drivers in the pmax port for instance, do or did bouncing to local bufs
either because of hardware issues or driver complexity.

i'm not interested in arguing whats "right" or "wrong" here. making
a solution that is kept to the driver would allow people with adaptec
boards to use more than 16 meg. and _i_ belive that this is the right
thing to do here, considering the plans to replace the vm system in
the future, which would probably impact a "correct" implementation anyway.