kernel_optimize_test/init
David Howells cb6ff20807 NOMMU: Support XIP on initramfs
Support XIP on files unpacked from the initramfs image on NOMMU systems.  This
simply requires the length of the file to be preset so that the ramfs fs can
attempt to garner sufficient contiguous storage to store the file (NOMMU mmap
can only map contiguous RAM).

All the other bits to do XIP on initramfs files are present:

 (1) ramfs's truncate attempts to allocate a contiguous run of pages when a
     file is truncated upwards from nothing.

 (2) ramfs sets BDI on its files to indicate direct mapping is possible, and
     that its files can be mapped for read, write and exec.

 (3) NOMMU mmap() will use the above bits to determine that it can do XIP.
     Possibly this needs better controls, because it will _always_ try and do
     XIP.

One disadvantage of this very simplistic approach is that sufficient space
will be allocated to store the whole file, and not just the bit that would be
XIP'd.  To deal with this, though, the initramfs unpacker would have to be
able to parse the file contents.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
2009-01-08 12:04:48 +00:00
..
calibrate.c x86: remove stray <6> in BogoMIPS printk 2008-07-28 14:22:26 +02:00
do_mounts_initrd.c Freezer: Fix s2disk resume from initrd 2007-11-20 22:22:42 -05:00
do_mounts_md.c autodetect_raid: add missing __init marking 2009-01-06 15:59:12 -08:00
do_mounts_rd.c identify_ramdisk_image(): correct typo about return value in comment 2008-10-16 11:21:30 -07:00
do_mounts.c async: Asynchronous function calls to speed up kernel boot 2009-01-07 08:45:46 -08:00
do_mounts.h make init/do_mounts.c:root_device_name static 2008-07-26 12:00:12 -07:00
initramfs.c NOMMU: Support XIP on initramfs 2009-01-08 12:04:48 +00:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async 2009-01-07 15:35:47 -08:00
Makefile kbuild: fix make V=1 2008-02-11 17:43:54 +01:00
noinitramfs.c [PATCH] disable init/initramfs.c 2007-02-11 10:51:25 -08:00
version.c init/version.c: define version_string only if CONFIG_KALLSYMS is not defined 2008-07-25 10:53:29 -07:00