Subject: Re: FreeBSD Bus DMA
To: Justin T. Gibbs <gibbs@plutotech.com>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: tech-kern
Date: 06/11/1998 15:40:38
On Thu, 11 Jun 1998 14:07:36 -0600 
 "Justin T. Gibbs" <gibbs@plutotech.com> wrote:

 > >Fine. I'll accept that you have experience. Can you tell me, then, on
 > >which architectures other than Wintel boxes you have tried this new
 > >bus_dma design on, and what the results have been?
 > 
 > None, but you seem to believe that I have claimed something I haven't. I

I'm only going to make the following comments on this thread:

	(1) NetBSD invented the interface.  (It was primarily me, plus
	    the input of some others who are Very familier with all
	    of the issues.  See the manual page for the canonical list.)

	(2) NetBSD did the first, second, third, etc. implementations.
	    (Our underlying implementation continues to evolve, and
	    there has been exactly one interface change, inspired by
	    the fact that we run on a distributed parallel supercomputer.)

	(3) NetBSD has widely deployed the bus_dma interface AS IT IS,
	    before FreeBSD even considered adopting it.

	(4) You are proposing changing an interface we have widely deployed.

	(5) You have shown no concrete win for doing so.  All you can say
	    is that you think that it's better.

I entertained your ideas during the year-long design phase of bus_dma,
and when I raised technical based concernes (based on my experience working
with the NetBSD kernel on a _WIDE_ variety of architectures), you not only
refused to address them, but failed to demonstrate any real gain to be had.
(I.e. I don't dispute that you could save a small amount of memory by
eliminating the array of segments within the DMA map, but you never
once quantified HOW much, and ignored the fact that it can actually
lead to waste and inefficiency on systems where you have no choice
but to have a static copy of that information.)

Why should we change our interface based on your theories?  We have proof
that our interface works, is adequate, easy to use, etc.  It was a clean
win over the old one, because the old one _didn't work_ on many of our
platforms.

 > I must say that it still amazes me how much this group lets its emotions
 > get in the way of progress.  Is it so inconceivable that a piece of code

No, it's not emotions.  It has nothing to do with "refusing to cooperate".
It's called common sense and good engineering.  Until you can demonstrate a
CLEAR BENEFIT to changing a perfectly adequate interface that we have already
widely deployed, why should we entertain the idea of changing?

FreeBSD _should_ have adopted the interface unchanged, gained some experience,
and then consider changing the interface (or not!), and show a definite win by
doing so.  But that didn't happen.  Instead you're saying:

	We changed the interface.  Here's a vague outline of how.  We
	think it's better.  Now you're going to have to live with it.

I'm even told you refused to write a document detailing all of the exact
differences, and how to port a driver from one to another.

I don't think asking for concrete justification is unreasonable.  And,
until you provide it, I'm not really willing to consider changing the
interface in any way that you suggest.

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                            Home: +1 408 866 1912
NAS: M/S 258-5                                       Work: +1 650 604 0935
Moffett Field, CA 94035                             Pager: +1 650 428 6939