Re: [GIT PULL 0/2] perf annotate fix and report improvoment

From: Arnaldo Carvalho de Melo
Date: Wed May 26 2010 - 16:33:40 EST


Em Wed, May 26, 2010 at 10:11:14PM +0200, Stephane Eranian escreveu:
> On Wed, May 26, 2010 at 9:32 PM, Arnaldo Carvalho de Melo
> <acme@xxxxxxxxxxxxx> wrote:
> > Em Wed, May 26, 2010 at 09:07:05PM +0200, Stephane Eranian escreveu:
> >> But in this example, I only really care about the symbols in the
> >> noploop program (/tmp/noploop).
> >>
> >> Missing symbol support for the kernel should not cause perf to avoid
> >> trying to resolve the symbols in other modules such as my user program
> >> here.
> >
> > Right, my bad, I thought that the problem was about the kernel symbols.
> >
> > Then can you try replacing:
> >
> > perf annotate -i ~/perf.data noploop
> >
> > with:
> >
> > perf annotate -i ~/perf.data -d noploop
> >
> > And see if that helps?
> >
> Ok that works. But if I turned on TUI, then I cannot obtain
> the same result. I am guessing it does not use the -d option.

Humm, it should be working, i.e. -d processing is about adding a filter,
lemme see...

Yeah, in builtin-annotate.c

OPT_STRING('d', "dsos", &symbol_conf.dso_list_str, "dso[,dso...]",
"only consider symbols in these dsos"),

It sets the dso_list_str and that is used when processing events in:

perf_session__process_events
process_sample_event (in builtin-annotate.c)
event__preprocess_sample

In event__preprocess_sample:

if (symbol_conf.dso_list &&
(!al->map || !al->map->dso ||
!(strlist__has_entry(symbol_conf.dso_list,
al->map->dso->short_name) ||
(al->map->dso->short_name != al->map->dso->long_name &&
strlist__has_entry(symbol_conf.dso_list,
al->map->dso->long_name)))))
goto out_filtered;

Yeah, this is all done no matter what frontend is used :-\

I just tried it here with:

[root@emilia linux-2.6-tip]# perf report -d libc-2.12.so
[root@emilia linux-2.6-tip]# perf annotate -d libc-2.12.so

with

[root@emilia linux-2.6-tip]# cat ~/.perfconfig
[tui]

report = on
annotate = on
[root@emilia linux-2.6-tip]#

And it works as expected.

- 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/