Subject: Re: GENERIC is absurdly big
To: Greg Troxel <gdt@ir.bbn.com>
From: Christoph Badura <bad@bsd.de>
List: port-i386
Date: 12/19/2003 19:36:33
On Fri, Dec 19, 2003 at 09:34:04AM -0500, Greg Troxel wrote:
> I think Jason's suggestion is pretty sensible (would be cool to have
> m4, or perhaps just .include GENERIC_CORE), but really we are talking
> about picking a few points that will cover lots of uses, where uses is
> machine + set of installed cards.

Oh, I have nothing against splitting GENERIC.  It's just that the particular
split seems not quite optimal to me.  I think we should support the common
PCI+ISA configurations of the last 5-8 years.  But we could leave out a
lot of fringe hardware.  E.g. 3C501, old sound blaster.  the ISA SCSI
controllers etc.  I'd even go so far and say support the ISA NE2000 and
3C509 only, that should take care of the majority of the ISA network cards
sold in that period.

> I still use a machine with an actual ISA bus as well as PCI (bought
> 1999, tried hard to get ISA slots for old cards).  But, I don't mind
> building a kernel for odd stuff.

Yes.  I have an AST-4 clone for console ports and an ISA ISDN card in my
PPro file server at home.  I need to get my AST-8 clone back.

> So a kernel that supports ISA and PCI only, has drivers for the
> reasonably common PCI cards, and standard ISA devices (perhaps
> soundblaster and ep, plus lpt/com of course) but tries to be a bit
> trim would be useful.  This would intend to work for 90% of the
> people, hoping to get to 60% of the size.

Yes, exactly.

> Another approach is to factor out lots of stuff into subfiles (for a
> bus, for normal devices on the bus, for extended devices on the bus).
> This would ease kernel compilation; I routinely strip configs to just
> what I have, but that's perhaps more work than it needs to be.

Yes, I'd definitely want something like that.  That would also help
pairing the PHY and Ethernet card drivers.  I end up including all the
phys in most of my kernel because I'm sick and tired of playing config
roulette.

--chris