Subject: [Fwd: a proposal for next major (5.x)]
To: None <tech-kern@NetBSD.org, port-masters@NetBSD.org>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: tech-kern
Date: 09/07/2006 10:00:40
This is a multi-part message in MIME format.
--------------070007090001040304060100
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

FYI, I just sent this proposal to core for consideration.  Those of you
who have ports that have not kept up with the features table at
http://www.netbsd.org/developers/features might want to take this time
to figure out if any of those issues can be tackled.

I'm especially keen to get all the ports converted to timecounters and
generic-todr.

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191


--------------070007090001040304060100
Content-Type: message/rfc822;
 name="a proposal for next major (5.x)"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="a proposal for next major (5.x)"

Message-ID: <45004FA7.9060604@tadpole.com>
Date: Thu, 07 Sep 2006 09:58:15 -0700
From: Garrett D'Amore <garrett_damore@tadpole.com>
User-Agent: Thunderbird 1.5.0.5 (X11/20060730)
MIME-Version: 1.0
To: core@NetBSD.org
Subject: a proposal for next major (5.x)
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


We seem to be carrying more and more baggage in MI code to support ports
that are getting stagnant.  I spent some time trying to understand parts
of kern_clock.c, and I found it very, very difficult to grok that code
through the mess of #ifdef's.

I am therefore proposing (and sending this to core) that we consider
that some features are _mandatory_ for the next post-4.0 major release
(i.e. 5.0), so that we can clean up the code.  It seems reasonable to
set a timer and then start removing the MI support for ports that aren't
keeping up to date.

There are quite a few good candidates, from
http://www.netbsd.org/developers/features/

Here are the ones I propose become mandatory for 5.0, though core@ may
want to add to or remove from this list:

    - cf_unit (only sun3 needs this)
    - generic softint
    - evcnt - this is so easy to do that all ports should have converted
    - RAS (maybe?)
    - timecounters
    - generic-todr

Of these, I'd probably pick on cf_unit and generic todr with the
shortest timers, because they are the easiest to fix.

Next I'd pick on timecounters and generic softint, because they have the
biggest impact on MI.  (timecounters is especially bad)

I'd leave to to core to assign time lines on this, but 1 month and 2
months timelines before the feature test is removed and MI unidef'd
seems reasonable.

To the people who say, "it doesn't hurt to keep this old support alive",
I strongly recommend they stare at kern_clock.c, or even just do a grep
in sys/kern for __HAVE_TIMECOUNTER.  It _does_ hurt, because someone has
to sustain all that MI code.  The carrot of newer/better support and
being able to make more use of common code (e.g. generic-todr) doesn't
seem to be doing the job for all ports -- some will probably never
update unless they are forced to.  I think it is time to apply the stick.

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191



--------------070007090001040304060100--