perf test: Fixup aliases checking in the ' vmlinux matches kallsyms' test
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: ab414dcda8fa307388c40a540b35e3c98a9da5ae Gitweb: http://git.kernel.org/tip/ab414dcda8fa307388c40a540b35e3c98a9da5ae Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Mon, 25 Jan 2016 18:04:47 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 26 Jan 2016 11:52:52 -0300
perf test: Fixup aliases checking in the 'vmlinux matches kallsyms' test
There are cases where looking at just the next and prev entries is not enough, like with:
$ readelf -sW /usr/lib/debug/lib/modules/4.3.3-301.fc23.x86_64/vmlinux | grep ffffffff81065ec0 4979: ffffffff81065ec0 53 FUNC LOCAL DEFAULT 1 try_to_free_pud_page 4980: ffffffff81065ec0 53 FUNC LOCAL DEFAULT 1 try_to_free_pte_page 4981: ffffffff81065ec0 53 FUNC LOCAL DEFAULT 1 try_to_free_pmd_page
So just search by name to see if the symbol is in kallsyms.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/tests/vmlinux-kallsyms.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-)
tools/perf/tests/vmlinux-kallsyms.c +5 -19
@@ -110,7 +110,6 @@ int test__vmlinux_matches_kallsyms(int subtest __maybe_unused)*/ for (nd =rb_first (&vmlinux_map->dso->symbols[type]); nd; nd =rb_next (nd)) {struct symbol *pair, *first_pair; -bool backwards = true; sym = rb_entry(nd, struct symbol, rb_node);
@@ -151,27 +150,14 @@ next_pair:continue ; }else { -struct rb_node *nnd; -detour: - nnd = backwards ?rb_prev (&pair->rb_node) : -rb_next (&pair->rb_node); -if (nnd) { - struct symbol *next = rb_entry(nnd, struct symbol, rb_node); - -if (UM (next->start) == mem_start) { - pair = next; + pair =machine__find_kernel_symbol_by_name (&kallsyms, type, sym->name,NULL ,NULL ); +if (pair) { +if (UM (pair->start) == mem_start) goto next_pair; - } - } -if (backwards) { - backwards = false; - pair = first_pair; - goto detour; +pr_debug ("%#" PRIx64": diff name v: %s k: %s\n" , + mem_start, sym->name, pair->name); } - -pr_debug ("%#" PRIx64": diff name v: %s k: %s\n" , - mem_start, sym->name, pair->name); } }else pr_debug("%#" PRIx64 ": %s not on kallsyms\n",