]> git.baikalelectronics.ru Git - kernel.git/commit
objtool: Optimize find_symbol_*() and read_symbols()
authorPeter Zijlstra <peterz@infradead.org>
Thu, 12 Mar 2020 08:34:42 +0000 (09:34 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 25 Mar 2020 17:28:29 +0000 (18:28 +0100)
commitd1aadcb36c18a7dad3dab619195e06ba48232448
tree862c13b17b3b80cd22d5e7d82a9c16254720b494
parentee3ad986b52d343cd9141c119a05cc7cce0a5176
objtool: Optimize find_symbol_*() and read_symbols()

All of:

  read_symbols(), find_symbol_by_offset(), find_symbol_containing(),
  find_containing_func()

do a linear search of the symbols. Add an RB tree to make it go
faster.

This about halves objtool runtime on vmlinux.o, from 34s to 18s.

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.499016559@infradead.org
tools/objtool/Build
tools/objtool/elf.c
tools/objtool/elf.h