revisit: turning some of the "always used" modules to built-in

Arjan van de Ven arjan at infradead.org
Sun Jun 22 18:42:18 UTC 2008


A few weeks ago the discussion about considering making some of the things
in the fedora kernel not-a-module came up, but then died out. I'd like
to revisit that discussion with a very specific proposal of things
to turn into built-in.

For me, there are 3 key reasons to make certain things not-a-module:
1) Built-in code is easier to debug/diagnose. This may sound weird, but
   really, things inside the vmlinux allow for much better automated
   bug diagnostics/analysis.
   ( and the www.kerneloops.org site uses these, but can only do the more
     advanced automatic analysis on the built-in oopses)
2) Built-in code tends to be smaller and faster; there is a space and TLB
   overhead associated with modules (several datastructures get rounded up
   to 4K boundaries, and modules are vmalloc'd which has TLB overhead)
3) A system with key functionality not-in-the-vmlinux is more fragile
   if something goes wrong 

With this in mind, I came up with the list below, I've split it into 4
categories.

I would like to ask feedback on this list, with the goal of getting
these changes made to fedora 10 asap to then get a wider audience input
to see if anything breaks.


Category 1: Always loaded anyway 
--------------------------------
Rationale: Since we load these always anyway, why bother making it modules
- ata_generic, pata_acpi
- libata
- sg, sd_mod, scsi_mod
- ext3, jbd, mbcache


Category 2: Always loaded in default install
--------------------------------------------
Rationale: yes you can turn off your firewall.. but nobody should do that.
           The others are default-loaded as well
- ip_tables, iptable_filter
- ip6_tables, ip6table_filter
- dm_mod
- ipv6
- battery, ac, button, video, output

Category 3: popular/very common and makes the system more robust
----------------------------------------------------------------
Rationale: having these built in makes the system more robust, also
           in case of failure
- ahci (default storage for all new systems; means that there the system 
        always has the / device driver)
- ehci_hcd (means you have a USB keyboard early)
- cpufreq_ondemand (means the cpu can slow down for power/thermal)
- acpi_cpufreq (means the cpu can slow down for power/thermal)

Category 4: VERY popular 
------------------------
Rationale: pretty much always loaded in default installs
- snd_seq_dummy, snd_seq, snd_seq_device, 
  snd_pcm, snd_timer, snd_page_alloc, snd





More information about the Fedora-kernel-list mailing list