Em Wed, Sep 28, 2022 at 10:22:18AM +0530, Athira Rajeev escreveu: > The testcase “vmlinux-kallsyms.c” fails in powerpc. > > vmlinux symtab matches kallsyms: FAILED!
Thanks, applied. - Arnaldo > This test look at the symbols in the vmlinux DSO > and check if we find all of them in the kallsyms dso. > But from the powerpc logs , observed that the failure > happens for: > ERR : 0xc0000000000fe9c8: .Lmfspr_table not on kallsyms > ERR : 0xc0000000001009c8: .Lmtspr_table not on kallsyms > > These are labels ( with .L) in the source code and > has to be ignored. Reference code with .Lmtspr_table: > arch/powerpc/xmon/spr_access.S > > The testcases invokes is_ignored_symbol() function to > ignore hidden symbols in the dso like local symbols. This > function is adapted from is_ignored_symbol() kernel > function in code: scripts/kallsyms.c . The kernel > function got some updates which is not reflected in > the testcase function and the new updates also handles > ignoring "labels". > > Below is the changes that went in the kernel function. > > /* Symbol names that begin with the following are ignored.*/ > static const char * const ignored_prefixes[] = { > "$", /* local symbols for ARM, MIPS, > etc. */ > - ".LASANPC", /* s390 kasan local symbols */ > + ".L", /* local labels, > .LBB,.Ltmpxxx,.L__unnamed_xx,.LASANPC, etc. */ > "__crc_", /* modversions */ > "__efistub_", /* arm64 EFI stub namespace */ > - "__kvm_nvhe_", /* arm64 non-VHE KVM namespace > */ > + "__kvm_nvhe_$", /* arm64 local symbols in > non-VHE KVM namespace */ > + "__kvm_nvhe_.L", /* arm64 local symbols in > non-VHE KVM namespace */ > "__AArch64ADRPThunk_", /* arm64 lld */ > "__ARMV5PILongThunk_", /* arm lld */ > "__ARMV7PILongThunk_", > > This change is part of below commits and will handle the > symbols with “.L” > > commit d4c858643263 ("kallsyms: ignore all local labels prefixed > by '.L'") > commit 6ccf9cb557bd ("KVM: arm64: Symbolize the nVHE HYP addresses") > > Update the testcase function to include the new > changes. > > Reported-by: Disha Goel <disg...@linux.vnet.ibm.com> > Signed-off-by: Athira Rajeev <atraj...@linux.vnet.ibm.com> > --- > tools/perf/tests/vmlinux-kallsyms.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/tests/vmlinux-kallsyms.c > b/tools/perf/tests/vmlinux-kallsyms.c > index 4fd8d703ff19..8ab035b55875 100644 > --- a/tools/perf/tests/vmlinux-kallsyms.c > +++ b/tools/perf/tests/vmlinux-kallsyms.c > @@ -43,10 +43,11 @@ static bool is_ignored_symbol(const char *name, char type) > /* Symbol names that begin with the following are ignored.*/ > static const char * const ignored_prefixes[] = { > "$", /* local symbols for ARM, MIPS, etc. */ > - ".LASANPC", /* s390 kasan local symbols */ > + ".L", /* local labels, > .LBB,.Ltmpxxx,.L__unnamed_xx,.LASANPC, etc. */ > "__crc_", /* modversions */ > "__efistub_", /* arm64 EFI stub namespace */ > - "__kvm_nvhe_", /* arm64 non-VHE KVM namespace */ > + "__kvm_nvhe_$", /* arm64 local symbols in non-VHE KVM > namespace */ > + "__kvm_nvhe_.L", /* arm64 local symbols in non-VHE KVM > namespace */ > "__AArch64ADRPThunk_", /* arm64 lld */ > "__ARMV5PILongThunk_", /* arm lld */ > "__ARMV7PILongThunk_", > -- > 2.31.1 -- - Arnaldo