Skip to content
Commit e9b4b725 authored by Zhen Lei's avatar Zhen Lei Committed by Greg Kroah-Hartman
Browse files

kallsyms: Add helper kallsyms_on_each_match_symbol()

[ Upstream commit 4dc533e0

 ]

Function kallsyms_on_each_symbol() traverses all symbols and submits each
symbol to the hook 'fn' for judgment and processing. For some cases, the
hook actually only handles the matched symbol, such as livepatch.

Because all symbols are currently sorted by name, all the symbols with the
same name are clustered together. Function kallsyms_lookup_names() gets
the start and end positions of the set corresponding to the specified
name. So we can easily and quickly traverse all the matches.

The test results are as follows (twice): (x86)
kallsyms_on_each_match_symbol:     7454,     7984
kallsyms_on_each_symbol      : 11733809, 11785803

kallsyms_on_each_match_symbol() consumes only 0.066% of
kallsyms_on_each_symbol()'s time. In other words, 1523x better
performance.

Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
Stable-dep-of: b022f0c7

 ("tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent da359f69
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment