>Sometimes it matters to be small and sometimes fast.  That is a decision
>made by the kernel hacker.  Joe user does not make these decisions
>because he/she does not understand the overall impact.

>As someone else who writes code for this fine os would say: removing
>drivers is pure masturbation.

Oh dear....

I think that ye all do protest far too much.

Threats of unspecified system instability are hard to believe.

I strongly suggest that anyone desiring to optimize things
should be pointed at tools to monitor and profile system performance
before doing any changes at all, not just kernel mangling.

Hacking out chunks of kernel code "because it isn't used" is
clearly a bad idea. On the other hand, removing unused I/O device
drivers has been done for many decades in many O/Ss.
It's not a task for the uninitiated but it should not be fraught
with danger.

I suggest that there are reasonable cases where a non-core-team
person would correctly want to remove unused drivers.

For systems which must boot very quickly, removing unused drivers
whose probe routines cause significant timeouts can make a big
difference. Sometimes timeouts are the only way to check for an
I/O device behind a blind interface. For instance, checking
a floppy drive's seek time is a significant wait.

For systems which are intended to run with little memory or which
are straining at architectural limits, 100K here and 100K there
can make quite a big difference in what applications can run.
Many drivers are over 150K when linked.  When a megabyte or two
counts, removing 10 drivers could make a big difference.

If the kernel code is well structured, the following must be true:

Removing a driver which is essential to normal operation must
cause the kernel compile or link stage to fail.

Secret, undocumented dependencies (neither in the man pages or
in the source code comments) between apparently unrelated modules
are very serious bugs.

-----
The x86 architecture and I/O devices are seriously flawed.
There are cases where it is not obvious which driver is the
correct one for a peripheral, and the order in which devices
are probed is critical. Self identifying devices such as on the PCI
bus are mostly immune from this problem, and the kernel is
quite good about announcing a PCI device for which no driver is found.
Still, ISA devices can be a minefield. While removing an ISA
driver has potential to recover the most space or time, it's the
hardest to verify. Unfortunately the biggest payback is often
from removing drivers intended for systems not made in 10 years or more.
-----

As an aside, I've been wondering what the heck named is doing to
initialize itself. It does many thousands of disk accesses for no
visible benefit and takes a very long time to do them.

  curmudgeonly
     geoff steckel

Reply via email to