linux/scripts
Eric Dumazet 8af27e1dc4 fixdep: use hash table instead of a single array
I noticed fixdep uses ~2% of cpu time in kernel build, in function
use_config()

fixdep spends a lot of cpu cycles in linear searches in its internal
string array. With about 400 stored strings per dep file, this begins to
be noticeable.

Convert fixdep to use a hash table.

kbuild results on my x86_64 allmodconfig

Before patch :

real	10m30.414s
user	61m51.456s
sys	8m28.200s

real	10m12.334s
user	61m50.236s
sys	8m30.448s

real	10m42.947s
user	61m50.028s
sys	8m32.380s

After:

real	10m8.180s
user	61m22.506s
sys	8m32.384s

real	10m35.039s
user	61m21.654s
sys	8m32.212s

real	10m14.487s
user	61m23.498s
sys	8m32.312s

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
2010-11-11 17:12:06 +01:00
..
basic fixdep: use hash table instead of a single array 2010-11-11 17:12:06 +01:00
dtc dtc: Mark various internal functions static 2009-11-15 15:01:41 -08:00
genksyms genksyms: close ref_file after use 2010-02-02 14:33:55 +01:00
kconfig nconfig: Fix segfault when help contains special characters 2010-07-23 11:23:42 +02:00
ksymoops
mod scripts/mod/modpost.c: fix commentary accordingly to last changes 2010-08-26 13:55:23 +02:00
package kbuild: Fix make rpm 2010-07-21 16:06:05 +02:00
rt-tester scripts: change scripts to use system python instead of env 2010-02-02 14:33:56 +01:00
selinux selinux: fix warning in genheaders 2010-03-16 08:47:36 +11:00
tracing tracing, perf: Convert the power tracer into an event tracer 2009-09-19 11:42:12 +02:00
.gitignore kconfig: simplification of scripts/extract-ikconfig 2009-10-07 11:44:18 -04:00
bin2c.c
bloat-o-meter fix bloat-o-meter for ppc64 2007-12-17 19:28:17 -08:00
bootgraph.pl bootgraph: fix for use with dot symbols 2009-02-15 12:50:08 +01:00
checkincludes.pl checkincludes: fix perlcritic warnings 2010-03-07 21:19:57 +01:00
checkkconfigsymbols.sh kbuild,scripts: use non-builtin echo for '-e' 2009-10-11 23:21:25 +02:00
checkpatch.pl checkpatch: warn on declaration with storage class not at the beginning 2010-05-25 08:07:06 -07:00
checkstack.pl scripts: improve checkstack 2010-03-07 21:19:09 +01:00
checksyscalls.sh asm-generic: add a generic unistd.h 2009-06-11 21:02:16 +02:00
checkversion.pl checkversion: perl cleanup 2010-03-07 21:22:56 +01:00
cleanfile scripts: Make cleanfile/cleanpatch warn about long lines 2007-07-16 21:15:50 +02:00
cleanpatch scripts: Make cleanfile/cleanpatch warn about long lines 2007-07-16 21:15:50 +02:00
config kbuild: add generic --set-str option to scripts/config 2009-06-14 22:48:08 +02:00
conmakehash.c Fix all -Wmissing-prototypes warnings in x86 defconfig 2009-09-23 07:39:28 -07:00
decodecode scripts: add ARM support to decodecode 2010-02-02 14:33:54 +01:00
diffconfig kconfig: add diffconfig utility 2008-07-25 22:12:41 +02:00
export_report.pl export_report: fix perl warnings 2010-03-07 21:41:04 +01:00
extract-ikconfig kconfig: simplification of scripts/extract-ikconfig 2009-10-07 11:44:18 -04:00
gcc-version.sh Remove bashisms from scripts 2009-06-09 22:37:54 +02:00
gcc-x86_32-has-stack-protector.sh stackprotector: fix multi-word cross-builds 2009-02-11 12:17:29 +01:00
gcc-x86_64-has-stack-protector.sh stackprotector: fix multi-word cross-builds 2009-02-11 12:17:29 +01:00
gen_initramfs_list.sh Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
get_maintainer.pl scripts/get_maintainer.pl: default to not include unspecified tags 2010-05-25 08:07:05 -07:00
gfp-translate tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
headerdep.pl headerdep: perlcritic warning 2010-03-23 12:26:38 +01:00
headers_check.pl headers_check: fix perl warnings 2010-03-07 21:43:07 +01:00
headers_install.pl headers_install: use local file handles 2010-03-07 21:43:49 +01:00
headers.sh kbuild: do not check for include/asm-$ARCH 2009-12-12 13:08:14 +01:00
kallsyms.c scripts/kallsyms: Enable error messages while hush up unnecessary warnings 2010-09-29 16:18:27 +02:00
Kbuild.include kbuild: generate modules.builtin 2009-12-12 13:08:16 +01:00
kernel-doc scripts/kernel-doc: fix fatal error on function prototype 2010-03-24 16:31:20 -07:00
Lindent scripts/Lindent: support gnu indent v2.2.10 2008-04-29 08:06:04 -07:00
Makefile sparc: Kill PROM console driver. 2009-09-15 17:04:38 -07:00
Makefile.build kbuild: allow assignment to {A,C}FLAGS_KERNEL on the command line 2010-08-03 14:09:45 +02:00
Makefile.clean kbuild: Really don't clean bounds.h and asm-offsets.h 2010-03-11 11:15:22 +01:00
Makefile.fwinst firmware: silence __fw_modbuild and __fw_modinst 'Nothing to be done' messages 2008-08-02 07:52:29 +01:00
Makefile.headersinst kbuild: fix "Argument list too long" error for "make headers_check", 2009-06-09 22:37:56 +02:00
Makefile.host kbuild: fix some minor typoes 2008-04-25 20:18:48 +02:00
Makefile.lib initramfs: Fix build break on symbol-prefixed archs 2010-10-28 23:21:19 +02:00
Makefile.modbuiltin kbuild: Create output directory in Makefile.modbuiltin 2010-06-10 12:23:08 +02:00
Makefile.modinst Revert "kbuild: strip generated symbols from *.ko" 2009-01-14 21:38:20 +01:00
Makefile.modpost trivial: fix a typo in a filename 2010-08-03 14:59:50 +02:00
makelst kbuild: introduce ccflags-y, asflags-y and ldflags-y 2007-10-15 22:25:06 +02:00
markup_oops.pl Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
mkcompile_h scripts/mkcompile_h: don't test for hardcoded paths 2010-02-02 14:33:56 +01:00
mkmakefile kbuild: teach mkmakfile to be silent 2008-12-03 21:32:02 +01:00
mksysmap Revert "kbuild: strip generated symbols from *.ko" 2009-01-14 21:38:20 +01:00
mkuboot.sh kbuild/mkuboot.sh: allow spaces in CROSS_COMPILE 2007-05-02 20:58:10 +02:00
mkversion
module-common.lds linker script: throw away .discard section 2009-06-24 15:13:38 +09:00
namespace.pl namespace: perlcritic warnings 2010-03-07 21:38:32 +01:00
patch-kernel bugfix for scripts/patch-kernel in 2.6 sublevel stepping 2008-08-06 22:11:33 +02:00
pnmtologo.c fbdev: work around old compiler bug 2009-06-30 18:55:59 -07:00
profile2linkerlist.pl profile2linkerlist: fix perl warnings 2010-03-07 21:39:33 +01:00
recordmcount.pl Merge commit 'v2.6.33' into tracing/core 2010-02-26 09:18:32 +01:00
setlocalversion scripts/setlocalversion: update comment 2010-09-06 13:26:30 +02:00
show_delta scripts: change scripts to use system python instead of env 2010-02-02 14:33:56 +01:00
tags.sh Revert "kbuild: specify absolute paths for cscope" 2010-03-08 10:26:22 +01:00
unifdef.c unifdef: update to upstream revision 1.190 2009-12-12 13:08:16 +01:00
ver_linux Remove bashisms from scripts 2009-06-09 22:37:54 +02:00