CONFIG_TINY

From: Rasmus Andersen (rasmus@jaquet.dk)
Date: Wed Oct 30 2002 - 17:36:05 EST


Hi,

This details some new patches I have done as part of my
CONFIG_TINY exploration. Executive summary: Nothing earth-
shattering covered. I have made a few new patches and
brought acme's initstr stuff forward (I hope. Most of
it anyway.)

Patches:
 o Notes: noswap, noscript, noinline, hashes kernels have
   been boot tested. 'all' haven't, only so much time for
   fun in a day.

 o config: Patches arch/i386/config.in to allow selection of
   the patches below. Note that the noinline stuff is not
   configurable.
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-config

 o noswap: Disabling swap by stubbing out all of swapfile.c,
   swap_stat.c, page_io.c, highmem.c and some of memory.c.
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-noswap

 o noscript: Removing binfmt_script from the kernel. I had
   expected my machine to have severe difficulties booting
   with this one but there was no problems at all... Some
   think required here (for me, at least).
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-noscript

 o noinline: Same patch as last time (a forward port of
   an old Andrew Morton patch). I tried to do some mindless,
   aggressive uninlining but that expanded my kernel, so I
   need to think a bit more about this (yet again).
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-noinlines

 o nohashes: Minimises the VFS hashes and makes the network
   hashes 1/16 of their former size (down to a single page).
   These numbers are arbitrarily chosen. Comments welcome.
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-nohashes
          
 o allinone: All of the above rolled up into one.
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-allinone

 o initstr: Marks strings from __init functions as __initdata.
   Only some of the kernel covered so far. Large patch.
   Patch at: www.jaquet.dk/kernel/config_tiny/2.5.44-initstr

Below is a table with a 2.5.44 kernel constrasted with
2.5.44 kernels patched with the named patch (only compile
time ones are listed). Size of vmlinux along with the four
first columns from 'size vmlinux' are displayed.

The .config is 'allnoconfig'.

              vmlinux size fields
               size text data bss dec
base kernel 681405 481005 50913 252512 784430
noswap 667644 469197 50945 250144 770286
noscript 681150 480541 50877 252512 783930
noinlines 678345 476733 50913 252512 780158
allinone 664329 464445 50909 250144 765498

Note that the reason the all patch doesn't accumulate
the gains from the noswap and the noinlines is that
the noinlines patch touches a lot of stuff that the
noswap patch subsequently disables.

As before, your comments and suggestions will be
appreciated.

Regards,
  Rasmus



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Oct 31 2002 - 22:00:49 EST