1
0
Fork 0
alistair23-linux/scripts
Arjan van de Ven 4bdc3b7f1b [PATCH] x86_64: Basic reorder infrastructure
This patch puts the infrastructure in place to allow for a reordering of
functions based inside the vmlinux. The general idea is that it is possible
to put all "common" functions into the first 2Mb of the code, so that they
are covered by one TLB entry. This as opposed to the current situation where
a typical vmlinux covers about 3.5Mb (on x86-64) and thus 2 TLB entries.

This is done by enabling the -ffunction-sections flag in gcc, which puts
each function in its own ELF section, so that the linker can then order them
in a way defined by the linker script.

As per previous discussions, Linus said he wanted a "static" list for this,
eg a list provided by the kernel tarbal, so that most people have the same
ordering at least. A script is provided to create this list based on
readprofile(1) output. The included list is provisional, and entirely biased
on my own testbox and me running a few kernel compiles and some other
things.

I think that to get to a better list we need to invite people to submit
their own profiles, and somehow add those all up and base the final list on
that. I'm willing to do that effort if this is ends up being the prefered
approach. Such an effort probably needs to be repeated like once a year or
so to adopt to the changing nature of the kernel.

Made it a CONFIG with default n because it increases link times
dramatically.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-25 09:10:56 -08:00
..
basic kbuild: consolidate command line escaping 2006-02-19 09:51:21 +01:00
genksyms Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2006-03-25 08:48:48 -08:00
kconfig kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h 2006-03-12 23:38:20 +01:00
ksymoops Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mod Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2006-03-25 08:48:48 -08:00
package kbuild: replace PHONY with FORCE 2006-03-08 18:39:05 +01:00
.gitignore gitignore: ignore more generated files 2006-01-03 11:35:26 +01:00
Kbuild.include kbuild: change kbuild to not rely on incorrect GNU make behavior 2006-03-06 00:09:51 +01:00
Lindent [PATCH] Lindent: ignore .indent.pro 2005-07-13 23:09:16 +00:00
Makefile kconfig: move lxdialog to scripts/kconfig/lxdialog 2005-12-16 21:35:19 +01:00
Makefile.build kbuild: add -fverbose-asm to i386 Makefile 2006-03-12 23:35:16 +01:00
Makefile.clean kbuild: change kbuild to not rely on incorrect GNU make behavior 2006-03-06 00:09:51 +01:00
Makefile.host [PATCH] kbuild: obey HOSTLOADLIBES_programname for single-file compilation 2005-07-13 22:11:14 +00:00
Makefile.lib kbuild: set correct KBUILD_MODNAME when using well known kernel symbols as module names 2005-12-26 00:33:41 +01:00
Makefile.modinst kbuild: change kbuild to not rely on incorrect GNU make behavior 2006-03-06 00:09:51 +01:00
Makefile.modpost Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2006-03-25 08:48:48 -08:00
bin2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binoffset.c update the email address of Randy Dunlap 2006-01-03 13:37:51 +01:00
bloat-o-meter [PATCH] tiny: Add bloat-o-meter to scripts 2006-01-08 20:14:10 -08:00
checkincludes.pl Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
checkstack.pl Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
checkversion.pl update the email address of Randy Dunlap 2006-01-03 13:37:51 +01:00
conmakehash.c [PATCH] kbuild: signed char fixes for scripts 2005-07-27 22:27:08 +02:00
extract-ikconfig [PATCH] extract-ikconfig: don't use --long-options 2006-03-24 07:33:21 -08:00
gcc-version.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gen_initramfs_list.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kallsyms.c [PATCH] kallsyms: handle malloc() failure 2006-03-25 08:22:56 -08:00
kernel-doc [PATCH] kernel-doc: clean up the script (whitespace) 2006-02-01 08:53:27 -08:00
makelst Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mkcompile_h kbuild: "PREEMPT" in UTS_VERSION 2005-07-14 20:18:07 +00:00
mkmakefile kbuild: fix mkmakefile 2006-02-19 09:51:21 +01:00
mksysmap spelling: s/retreive/retrieve/ 2006-01-10 00:10:13 +01:00
mkuboot.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mkversion Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
namespace.pl kbuild: make namespace.pl CROSS_COMPILE happy 2006-02-27 05:05:40 +01:00
patch-kernel update the email address of Randy Dunlap 2006-01-03 13:37:51 +01:00
pnmtologo.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
profile2linkerlist.pl [PATCH] x86_64: Basic reorder infrastructure 2006-03-25 09:10:56 -08:00
setlocalversion kbuild: In setlocalversion change -git_dirty to just -dirty 2006-01-08 18:44:01 +01:00
show_delta Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ver_linux [PATCH] Adapt scripts/ver_linux to new util-linux version strings 2005-09-07 16:57:33 -07:00