Re: [PATCH 1/3] perf tools: Allow vmlinux to fallback to kallsyms on NO_LIBELF=1

From: Arnaldo Carvalho de Melo
Date: Mon Nov 10 2014 - 07:11:50 EST


Em Mon, Nov 10, 2014 at 03:53:06PM +0900, Namhyung Kim escreveu:
> On Fri, 7 Nov 2014 12:29:31 -0300, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Nov 07, 2014 at 02:20:04PM +0900, Namhyung Kim escreveu:
> >> When libelf is not used, perf cannot not show symbol names since it
> >> doesn't access the ELF symbol table. But kernel is different as it
> >> can fallback to kallsyms.

> >> It worked w/o libelf, but recent change to use vmlinux for kernel
> >> symbols break it.

> >> With this change, it now can show kernel symbols again:

> > Ok, but since you added that minimal ELF symtab loading, isn't better to
> > try that first, i.e. if we find a vmlinux file with a build-id and with
> > symbols in it...

> > If that isn't the case, i.e. no vmlinux was found, then we fallback to
> > kallsyms, to check if that is available.

> > I.e. with your new minimalistic ELF symtab loader if we have a suitable
> > vmlinux but no kallsyms, we end up resolving no symbols even having that
> > nice vmlinux :-)
>
> Yeah, maybe. But it'd add a substantial complexity also and I tried to
> make it simple and small only to show usual userspace symbols.
>
> I think that about a half of the complexity of the dso__load_sym() in
> symbol-elf.c came from the kernel (and module) support. And expecting

Right, I agree that thing grew too complex, reducing that complexity is
something we should do when we have the chance. I.e. perhaps we could
separate kernel/modules handling out of it, even if just at source code
level at first...

> kallsyms on the system is not a high barrier IMHO. So I decided to just
> fall back to kallsyms for kernel dsos. Mayby we can add the kernel
> support incrementally later.

The suggestion came because you did that minimalistic reader, which if
can be used for vmlinux files, would be great, as resolving vmlinux
samples is such a major usecase :-)

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/