Messages in this thread | | | Date | Sat, 6 Nov 2021 16:48:04 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH] perf symbol: ignore $a/$d symbols for ARM modules |
| |
Em Thu, Oct 28, 2021 at 09:44:26AM +0100, James Clark escreveu: > > > On 27/10/2021 10:52, Lexi Shao wrote: > > On ARM machine, kernel symbols from modules can be resolved to $a > > instead of printing the actual symbol name. Ignore symbols starting with > > "$" when building kallsyms rbtree. > > > > A sample stacktrace is shown as follows: > > > > c0f2e39c schedule_hrtimeout+0x14 ([kernel.kallsyms]) > > bf4a66d8 $a+0x78 ([test_module]) > > c0a4f5f4 kthread+0x15c ([kernel.kallsyms]) > > c0a001f8 ret_from_fork+0x14 ([kernel.kallsyms]) > > > > On ARM machine, $a/$d symbols are used by the compiler to mark the > > beginning of code/data part in code section. These symbols are filtered > > out when linking vmlinux(see scripts/kallsyms.c ignored_prefixes), but > > are left on modules. So there are $a symbols in /proc/kallsyms which > > share the same addresses with the actual module symbols and confuses perf > > when resolving symbols. > > > > After this patch, the module symbol name is printed: > > > > c0f2e39c schedule_hrtimeout+0x14 ([kernel.kallsyms]) > > bf4a66d8 test_func+0x78 ([test_module]) > > c0a4f5f4 kthread+0x15c ([kernel.kallsyms]) > > c0a001f8 ret_from_fork+0x14 ([kernel.kallsyms]) > > > > Signed-off-by: Lexi Shao <shaolexi@huawei.com> > > Reviewed-by: James Clark <james.clark@arm.com>
Thanks, applied.
- Arnaldo
| |