summaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorStephane Eranian <eranian@google.com>2012-05-15 13:28:11 +0200
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-05-22 12:59:28 -0300
commit1a1ed1ba6778a5bc5702cebe276ab080a0b78115 (patch)
tree3a7510bed531918909ef1208eb31b93996765e6b /tools/perf
parent2eeaaa095d155d47d47d5df07571105b8ae76ffd (diff)
downloadlinux-1a1ed1ba6778a5bc5702cebe276ab080a0b78115.tar.gz
linux-1a1ed1ba6778a5bc5702cebe276ab080a0b78115.tar.bz2
linux-1a1ed1ba6778a5bc5702cebe276ab080a0b78115.zip
perf inject: Fix broken perf inject -b
perf inject -b was broken. It would not inject any build_id into the stream. Furthermore, it would strip samples from the stream. The reason was a missing initialization of the event attribute structure. The perf_tool.tool.attr() callback was pointing to a simple repipe. But there was no initialization of the internal data structures to keep track of events and event ids. That later caused event id lookups to fail, and sample would get removed. The patch simply adds back the call to perf_event__process_attr() to initialize the evlist structure and now build_ids are again injected. Signed-off-by: Stephane Eranian <eranian@google.com> Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1337081295-10303-2-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/builtin-inject.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index 09c106193e65..3beab489afc5 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -60,6 +60,11 @@ static int perf_event__repipe_tracing_data_synth(union perf_event *event,
static int perf_event__repipe_attr(union perf_event *event,
struct perf_evlist **pevlist __used)
{
+ int ret;
+ ret = perf_event__process_attr(event, pevlist);
+ if (ret)
+ return ret;
+
return perf_event__repipe_synth(NULL, event, NULL);
}