From: tip-bot for Andrew Vagin <avagin@openvz.org>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, linux-kernel@vger.kernel.org, paulus@samba.org,
mingo@redhat.com, hpa@zytor.com, mingo@kernel.org,
a.p.zijlstra@chello.nl, avagin@openvz.org, tglx@linutronix.de
Subject: [tip:perf/core] perf inject: Mark a dso if it's used
Date: Fri, 26 Oct 2012 08:11:21 -0700 [thread overview]
Message-ID: <tip-54a3cf59b53b3f01989a28344ecf4cb68217a6f6@git.kernel.org> (raw)
In-Reply-To: <1344344165-369636-5-git-send-email-avagin@openvz.org>
Commit-ID: 54a3cf59b53b3f01989a28344ecf4cb68217a6f6
Gitweb: http://git.kernel.org/tip/54a3cf59b53b3f01989a28344ecf4cb68217a6f6
Author: Andrew Vagin <avagin@openvz.org>
AuthorDate: Tue, 7 Aug 2012 16:56:05 +0400
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Fri, 26 Oct 2012 11:22:25 -0200
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>
---
tools/perf/builtin-inject.c | 11 ++++++++---
tools/perf/util/build-id.c | 10 +++++-----
tools/perf/util/build-id.h | 4 ++++
3 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index a4a3072..84ad6ab 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;
diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c
index 6a63999..94ca117 100644
--- a/tools/perf/util/build-id.c
+++ b/tools/perf/util/build-id.c
@@ -16,11 +16,11 @@
#include "session.h"
#include "tool.h"
-static int build_id__mark_dso_hit(struct perf_tool *tool __maybe_unused,
- union perf_event *event,
- struct perf_sample *sample __maybe_unused,
- struct perf_evsel *evsel __maybe_unused,
- struct machine *machine)
+int build_id__mark_dso_hit(struct perf_tool *tool __maybe_unused,
+ union perf_event *event,
+ struct perf_sample *sample __maybe_unused,
+ struct perf_evsel *evsel __maybe_unused,
+ struct machine *machine)
{
struct addr_location al;
u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
diff --git a/tools/perf/util/build-id.h b/tools/perf/util/build-id.h
index a993ba8..45c500b 100644
--- a/tools/perf/util/build-id.h
+++ b/tools/perf/util/build-id.h
@@ -7,4 +7,8 @@ extern struct perf_tool build_id__mark_dso_hit_ops;
char *dso__build_id_filename(struct dso *self, char *bf, size_t size);
+int build_id__mark_dso_hit(struct perf_tool *tool, union perf_event *event,
+ struct perf_sample *sample, struct perf_evsel *evsel,
+ struct machine *machine);
+
#endif
next prev parent reply other threads:[~2012-10-26 15:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-07 12:56 [PATCH 0/4] perf: Teach perf tool to profile sleep times (v2) Andrew Vagin
2012-08-07 12:56 ` [PATCH 1/4] perf: teach "perf inject" to work with files (v2) Andrew Vagin
2012-10-26 15:09 ` [tip:perf/core] perf inject: Work with files tip-bot for Andrew Vagin
2012-08-07 12:56 ` [PATCH 2/4] perf: synthesize_sample gets evsel instead of session Andrew Vagin
2012-08-07 12:56 ` [PATCH 3/4] perf: teach perf inject to merge sched_stat_* and sched_switch events (v2) Andrew Vagin
2012-08-25 11:47 ` Frederic Weisbecker
2012-08-27 7:22 ` Andrey Wagin
2012-08-27 20:51 ` Andi Kleen
2012-08-27 21:56 ` David Ahern
2012-08-27 22:14 ` Andi Kleen
2012-08-29 8:27 ` Andrew Vagin
2012-10-26 15:10 ` [tip:perf/core] perf inject: Merge sched_stat_* and sched_switch events tip-bot for Andrew Vagin
2012-08-07 12:56 ` [PATCH 4/4] perf: mark a dso if it's used Andrew Vagin
2012-10-26 15:11 ` tip-bot for Andrew Vagin [this message]
2012-08-08 0:32 ` [PATCH 0/4] perf: Teach perf tool to profile sleep times (v2) Namhyung Kim
2012-08-08 5:02 ` Andrey Wagin
2012-08-08 5:30 ` Namhyung Kim
2012-08-08 7:24 ` Andrey Wagin
2012-08-09 0:37 ` Namhyung Kim
2012-08-09 12:56 ` Andrey Wagin
2012-08-24 13:32 ` Andrey Wagin
2012-08-24 17:59 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-54a3cf59b53b3f01989a28344ecf4cb68217a6f6@git.kernel.org \
--to=avagin@openvz.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.