Size Tunables
From eLinux.org
This page has a list of items that can be configured for the Linux kernel, which may affect the size (RAM/ROM/static/dynamic) of the kernel.
Options from Linux-tiny
| CONFIG option | description | default value | value for small size | Size change (ARM) | Notes |
| CONFIG_CORE_SMALL | tune some kernel data sizes | N | Y | ?? | . |
| CONFIG_NET_SMALL | tune some net-related data sizes | N | Y | ?? | . |
| CONFIG_PRINTK | allow disable of printk code and message data | Y | N | ?? | . |
| CONFIG_BUG | allow elimination of BUG (and BUG_ON??) code | Y | N | ?? | . |
| CONFIG_ELF_CORE | allow disabling of ELF core dumps | Y | N | ?? | . |
| CONFIG_PROC_KCORE | allow disabling of /proc/kcore | Y | N | ?? | . |
| CONFIG_AIO | allow disabling of async IO syscalls | Y | N | ?? | . |
| CONFIG_XATTR | allow disabling of xattr syscalls | Y | N | ?? | . |
| CONFIG_FILE_LOCKING | allow disabling of file locking syscalls | Y | N | ?? | . |
| CONFIG_DIRECTIO | allow disabling of direct IO support | Y | N | ?? | . |
| CONFIG_MAX_SWAPFILES_SHIFT | number of swapfiles | 5 | 0 | ?? | . |
| CONFIG_NR_LDISCS | number of tty line disciplines | 16 | 2? | ?? | . |
| CONFIG_MAX_USER_RT_PRIO | number of RT priority levels (schedule slots) | 100 | 5? | ?? | . |
| Other config options | These are not in Linux-tiny, but help with size | default | small | Size change (ARM) | Notes |
| CONFIG_KALLSYMS | load all symbols for debugging/kksymoops | Y | N | ?? | . |
| CONFIG_SHMEM | allow use of shmem filesystem | Y | N | ?? | . |
Options for size instrumentation
| Options for measuring size | description | default value | value for instrumentation |
| CONFIG_KMALLOC_ACCOUNTING | turn on kmalloc accounting | N | Y |
| CONFIG_AUDIT_BOOTMEM | print out all bootmem allocations | N | Y |
| CONFIG_DEPRECATE_INLINES | cause compiler to emit info about inlines | N | Y |
options that should be investigated
| Option | default value | value for small size | Size change | Notes |
| CONFIG_SERIAL_8250_NR_UARTS | 4 | 0 | ?? | only useful for non-legacy ports, depends on hardware, but most embedded hardware has only legacy serial ports |
- by default (at least on my OSK config), several different schedulers are configured
- only one should be used and others not compiled in.