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