Skip to contentSkip to conversation

perf trace: Provide libtracevent with a kernel symbol resolver

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Jul 29, 2015 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  706c3da409dfc6964740ac503c040c4c621954fd
Gitweb:     http://git.kernel.org/tip/706c3da409dfc6964740ac503c040c4c621954fd
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Wed, 22 Jul 2015 16:16:16 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Thu, 23 Jul 2015 22:01:38 -0300

perf trace: Provide libtracevent with a kernel symbol resolver

So that beautifiers wanting to resolve kernel function addresses to names can do its work, now, for instance, the 'timer' tracepoints beautifiers works with 'perf trace', see the "function=tick..." part:

 # perf trace --event timer:hrtimer_start
<SNIP>
  0.000 timer:hrtimer_start:hrtimer=0xffff88026f3101c0 function=tick_sched_timer/0x0 expires=52098339000000 softexpires=52098339000000)
  0.003 timer:hrtimer_start:hrtimer=0xffff88026f3101c0 function=tick_sched_timer/0x0 expires=52098339000000 softexpires=52098339000000)
<SNIP>
---
 tools/perf/builtin-trace.c | 3 +++
 1 file changed, 3 insertions(+)
tools/perf/builtin-trace.c +3 -0
index 32b4d28..282841b1 100644
@@ -1489,6 +1489,9 @@ static int trace__symbols_init(struct trace *trace, struct perf_evlist *evlist)
 	if (trace->host == NULL)
 		return -ENOMEM;
 
+	if (trace_event__register_resolver(trace->host) < 0)
+		return -errno;
+
 	err = __machine__synthesize_threads(trace->host, &trace->tool, &trace->opts.target,
 					    evlist->threads, trace__tool_process, false,
 					    trace->opts.proc_map_timeout);