Subject: Re: Diaspora, politics, and MI
To: Grey Wolf <greywolf@siva.captech.com>
From: John F. Woods <jfw@jfwhome.funhouse.com>
List: current-users
Date: 09/19/1996 08:21:42
> Chris, have you looked at making the top half MI while making the grunt
>laborers MD? It's not an unheard-of premise...
You obviously have to have some MD portion for this kind of thing, but
there's no reason to have the driver itself have any machine-dependant
details.
> [actually, I'm sure you must have looked at that concept by now, and you've
> probably hit some performance problems; but it's REALLY hard to hit a MI
> solution which doesn't suck performance-wise.]
Windows NT uses exactly the scheme described. A DMA driver *always*,
*unconditionally* allocates a "mapping register" to connect I/O bus DMA
addresses to memory bus addresses, and *always* deallocates the mapping
register when DMA is complete. (Gee, you'd think the NT designers were
old VAX hacks or something :-). The Hardware Abstraction Layer contains
*all* of the knowledge about whether a given bus or machine needs registers,
bounce buffers, or no translation at all. And while NT's performance may
suck, this fails to be a source of any perceptable suckage.
You wouldn't want *Windows NT* to be able to claim to be better designed
and more machine independant than NetBSD, would you? ;-)