Kernel Modules

This page is meant to help picking between compile-in-kernel ("<*>") and compile-as-module ("") when configuring a Linux kernel.

Advantages
A module ..
 * is loadable without reboot (at least most of them)
 * results in smaller kernel memory footprint (when the module is not loaded)
 * can be loaded on demand by udev (for example DVB drivers for DVB stick)
 * allows easy reloading of kernel drivers in case of module crash
 * allows specifying module-specific parameters in /etc/conf.d/modules

Drawbacks
Using a module ..
 * may need an update of the initramfs for modules needed early (i.e. filesystem)
 * may result in minimal performance loss due to addition of api layer and slight more memory usage

Also:
 * Beware of file system module X located on a partition formatted with X (unbootable system at worst)