Hi Lijiang,
On Sat, Oct 23, 2021 at 9:27 AM lijiang <lijiang(a)redhat.com> wrote:
On Sat, Oct 16, 2021 at 1:21 PM Tao Liu <ltao(a)redhat.com> wrote:
>
> Currently the sequence for symbol_search to search a symbol is: 1) kernel
> symname hash table, 2) iterate all kernel symbols, 3) iterate all kernel
> modules and their symbols. In the worst case, if a non-exist symbol been
> searched, all 3 stages will be went through. The time consuming status for
> each stage is like:
>
> stage 1 stage 2 stage 3
> 0.007000(ms) 0.593000(ms) 2.421000(ms)
>
> stage 3 takes too much time when comparing to stage 1. This patch introduces
> a symname hash table for kernel modules, to improve the performance of symbol
> searching.
>
> Functions symbol_search and symbol_exists are fundamental and widely used by
> other crash functions, thus the benefit of performance improvement can
> get accumulated. For example, "ps -m" and "irq" commands, which
call
> the functions many times, will become faster with the patch.
>
> v5 -> v6:
>
> 1) Add mod_symname_hash table dump to help -s
> 2) Modified mod_symname_hash install/remove based on Kazu's suggestion.
>
> Tao Liu (7):
> Implement install and remove operations for mod_symname_hash
> Integrate symbol_search with mod_symname_hash search
> Extend symname_hash_search with hash table select
> Intergrate symbol_exists with mod_symname_hash search
> Sync module symbols into mod_symtable whenever module symbols change
> Refactor SYMNAME_HASH_INDEX macro to be a function
> Add mod_symname_hash table dump to help -s
>
> defs.h | 3 +-
> kernel.c | 1 +
> symbols.c | 261 +++++++++++++++++++++++++++++++++---------------------
> 3 files changed, 164 insertions(+), 101 deletions(-)
>
For the V6: Acked-by: Lianbo Jiang <lijiang(a)redhat.com>
Thanks.
Thanks for reviewing the patch set and ack!
Thanks,
Tao Liu
> --
> 2.29.2
>