linux/tools/objtool
Peter Zijlstra 8b5fa6bc32 objtool: Optimize read_sections()
Perf showed that __hash_init() is a significant portion of
read_sections(), so instead of doing a per section rela_hash, use an
elf-wide rela_hash.

Statistics show us there are about 1.1 million relas, so size it
accordingly.

This reduces the objtool on vmlinux.o runtime to a third, from 15 to 5
seconds.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200324160924.739153726@infradead.org
2020-03-25 18:28:30 +01:00
..
arch/x86 objtool: Move x86 insn decoder to a common location 2019-08-31 22:27:52 -03:00
Documentation docs: fix broken documentation links 2019-06-08 13:42:13 -06:00
.gitignore objtool: Move synced files to their original relative locations 2017-11-07 10:48:23 +01:00
arch.h objtool: Support conditional retpolines 2019-07-18 21:01:10 +02:00
Build objtool: Optimize find_symbol_*() and read_symbols() 2020-03-25 18:28:29 +01:00
builtin-check.c objtool: Add a statistics mode 2020-03-25 18:28:28 +01:00
builtin-orc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
builtin.h objtool: Add a statistics mode 2020-03-25 18:28:28 +01:00
cfi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
check.c objtool: Optimize read_sections() 2020-03-25 18:28:30 +01:00
check.h objtool: Resize insn_hash 2020-03-25 18:28:30 +01:00
elf.c objtool: Optimize read_sections() 2020-03-25 18:28:30 +01:00
elf.h objtool: Optimize read_sections() 2020-03-25 18:28:30 +01:00
Makefile objtool: Fix ARCH=x86_64 build error 2020-01-22 07:54:57 +01:00
objtool.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
orc_dump.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
orc_gen.c objtool: Optimize read_sections() 2020-03-25 18:28:30 +01:00
orc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
special.c objtool: Optimize read_sections() 2020-03-25 18:28:30 +01:00
special.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
sync-check.sh objtool: Silence build output 2020-01-22 07:54:34 +01:00
warn.h objtool: Rename find_containing_func() 2020-03-25 18:28:29 +01:00