objtool: Resize insn_hash
authorPeter Zijlstra <peterz@infradead.org>
Thu, 12 Mar 2020 09:20:46 +0000 (10:20 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 25 Mar 2020 17:28:30 +0000 (18:28 +0100)
Perf shows we're spending a lot of time in find_insn() and the
statistics show we have around 3.2 million instruction. Increase the
hash table size to reduce the bucket load from around 50 to 3.

This shaves about 2s off of objtool on vmlinux.o runtime, down to 16s.

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.617882545@infradead.org
tools/objtool/check.h

index 6d875ca6fce007358e6caf8069fb476ea04ed259..f0ce8ffe71359a47515eeb929ef1edadee2f8507 100644 (file)
@@ -50,7 +50,7 @@ struct instruction {
 struct objtool_file {
        struct elf *elf;
        struct list_head insn_list;
-       DECLARE_HASHTABLE(insn_hash, 16);
+       DECLARE_HASHTABLE(insn_hash, 20);
        bool ignore_unreachables, c_file, hints, rodata;
 };