aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-inject.c
diff options
context:
space:
mode:
authorAndrew Vagin <avagin@openvz.org>2012-08-07 16:56:05 +0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-10-26 11:22:25 -0200
commit54a3cf59b53b3f01989a28344ecf4cb68217a6f6 (patch)
treed5bb089080e23701b5f6af98c5c9ce74d9df85ca /tools/perf/builtin-inject.c
parentperf inject: Merge sched_stat_* and sched_switch events (diff)
downloadlinux-dev-54a3cf59b53b3f01989a28344ecf4cb68217a6f6.tar.xz
linux-dev-54a3cf59b53b3f01989a28344ecf4cb68217a6f6.zip
perf inject: Mark a dso if it's used
Otherwise they will be not written in an output file. Signed-off-by: Andrew Vagin <avagin@openvz.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1344344165-369636-5-git-send-email-avagin@openvz.org [ committer note: Fixed up wrt changes made in the immediate previous patches ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-inject.c')
-rw-r--r--tools/perf/builtin-inject.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index a4a307258fa3..84ad6abe4258 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -14,6 +14,7 @@
#include "util/session.h"
#include "util/tool.h"
#include "util/debug.h"
+#include "util/build-id.h"
#include "util/parse-options.h"
@@ -116,6 +117,8 @@ static int perf_event__repipe_sample(struct perf_tool *tool,
return f(tool, event, sample, evsel, machine);
}
+ build_id__mark_dso_hit(tool, event, sample, evsel, machine);
+
return perf_event__repipe_synth(tool, event, machine);
}
@@ -310,6 +313,7 @@ found:
sample_sw.time = sample->time;
perf_event__synthesize_sample(event_sw, evsel->attr.sample_type,
&sample_sw, false);
+ build_id__mark_dso_hit(tool, event_sw, &sample_sw, evsel, machine);
return perf_event__repipe(tool, event_sw, &sample_sw, machine);
}
@@ -342,8 +346,7 @@ static int __cmd_inject(struct perf_inject *inject)
signal(SIGINT, sig_handler);
- if (inject->build_ids) {
- inject->tool.sample = perf_event__inject_buildid;
+ if (inject->build_ids || inject->sched_stat) {
inject->tool.mmap = perf_event__repipe_mmap;
inject->tool.fork = perf_event__repipe_fork;
inject->tool.tracing_data = perf_event__repipe_tracing_data;
@@ -353,7 +356,9 @@ static int __cmd_inject(struct perf_inject *inject)
if (session == NULL)
return -ENOMEM;
- if (inject->sched_stat) {
+ if (inject->build_ids) {
+ inject->tool.sample = perf_event__inject_buildid;
+ } else if (inject->sched_stat) {
struct perf_evsel *evsel;
inject->tool.ordered_samples = true;