Re: [PATCH] perf sched replay: fix event lookup

Arnaldo Carvalho de Melo
2012-06-12T17:11:12Z

Em Tue, Jun 12, 2012 at 03:01:26PM +0900, Namhyung Kim escreveu:
> Hi,
>
> On Mon, 11 Jun 2012 11:08:52 -0300, Arnaldo Carvalho de Melo wrote:
> > Em Mon, Jun 11, 2012 at 02:46:02PM +0900, Namhyung Kim escreveu:
> >> On Sat, 9 Jun 2012 13:05:58 +0400, Dmitry Antipov wrote:
> >> > Use new function trace_find_event_by_name to lookup events before
> >> > looking through /sys files. This helps 'perf sched replay' to map
> >> > event names to IDs correctly when processing perf.data recorded
> >> > on another machine.
> >>
> >> Basically the same approach with the previous reply, please put this
> >> into trace_event__id(). And minor nits below..
> >
> > Well, trace_event__id() is private to evlist and evlist so far is a
> > local thing, i.e. it doesn't know anything about perf.data files.
> >
>
> Really? I see that perf_session__open make up an evlist for the session
> and a tracepoint event in the evlist should look up the perf.data
> first. As this patch addressed, perf sched replay dealt with the
> session->evlist already. Am I missing something?

I sent a patch fixing it, basically after creating the evlist in
perf_session__open it will traverse it, looking up the pevents list
created while processing the trace feature section in the header,
setting up evsel->name properly.

> > So I think we should have a per perf.data (perf_session) method that
> > knows that it shouldn't look _at all_ to /sys, but just at what came in
> > the perf.data file.
> >
>
> Fair enough. The method should be a simple wrapper to libtraceevent APIs
> like this patch.

Right, that is what it does.

>
> > As well when we want something that is on the running machine, even if
> > we're dealing somehow with a perf.data file, we shouldn't use what is in
> > it.
> >
>
> That's the current behavior of the trace_event__id(). Do you want to
> make it public?

No need for it, the only users should be inside evsel.c.

- Arnaldo