From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Jiri Olsa <jolsa@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Andi Kleen <andi@firstfloor.org>,
Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH RESEND] perf record: Add --buildid-all option
Date: Tue, 12 Jan 2016 12:00:29 -0300 [thread overview]
Message-ID: <20160112150029.GB18367@kernel.org> (raw)
In-Reply-To: <1452519518-3612-1-git-send-email-namhyung@kernel.org>
Em Mon, Jan 11, 2016 at 10:38:38PM +0900, Namhyung Kim escreveu:
> The --buildid-all option is to record build-id of all DSOs in the file.
> It might be very costly to postprocess samples to find which DSO hits.
Applied.
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Cc: Andi Kleen <andi@firstfloor.org>
> Cc: Stephane Eranian <eranian@google.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/perf/Documentation/perf-record.txt | 3 +++
> tools/perf/builtin-record.c | 32 ++++++++++++++++++++++++++------
> 2 files changed, 29 insertions(+), 6 deletions(-)
>
> diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
> index 3a1a32f5479f..fbceb631387c 100644
> --- a/tools/perf/Documentation/perf-record.txt
> +++ b/tools/perf/Documentation/perf-record.txt
> @@ -338,6 +338,9 @@ Options passed to clang when compiling BPF scriptlets.
> Specify vmlinux path which has debuginfo.
> (enabled when BPF prologue is on)
>
> +--buildid-all::
> +Record build-id of all DSOs regardless whether it's actually hit or not.
> +
> SEE ALSO
> --------
> linkperf:perf-stat[1], linkperf:perf-list[1]
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index dc4e0adf5c5b..a42cb2955697 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -50,6 +50,7 @@ struct record {
> int realtime_prio;
> bool no_buildid;
> bool no_buildid_cache;
> + bool buildid_all;
> unsigned long long samples;
> };
>
> @@ -362,6 +363,13 @@ static int process_buildids(struct record *rec)
> */
> symbol_conf.ignore_vmlinux_buildid = true;
>
> + /*
> + * If --buildid-all is given, it marks all DSO regardless of hits,
> + * so no need to process samples.
> + */
> + if (rec->buildid_all)
> + rec->tool.sample = NULL;
> +
> return perf_session__process_events(session);
> }
>
> @@ -756,12 +764,8 @@ out_child:
>
> if (!rec->no_buildid) {
> process_buildids(rec);
> - /*
> - * We take all buildids when the file contains
> - * AUX area tracing data because we do not decode the
> - * trace because it would take too long.
> - */
> - if (rec->opts.full_auxtrace)
> +
> + if (rec->buildid_all)
> dsos__hit_all(rec->session);
> }
> perf_session__write_header(rec->session, rec->evlist, fd, true);
> @@ -1138,6 +1142,8 @@ struct option __record_options[] = {
> "options passed to clang when compiling BPF scriptlets"),
> OPT_STRING(0, "vmlinux", &symbol_conf.vmlinux_name,
> "file", "vmlinux pathname"),
> + OPT_BOOLEAN(0, "buildid-all", &record.buildid_all,
> + "collect build-id of all DSOs regardless of hits"),
> OPT_END()
> };
>
> @@ -1193,6 +1199,12 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
> return -EINVAL;
> }
>
> + if (rec->no_buildid && rec->buildid_all) {
> + parse_options_usage(record_usage, record_options, "B", 1);
> + parse_options_usage(NULL, record_options, "buildid-all", 0);
> + return -EINVAL;
> + }
> +
> if (!rec->itr) {
> rec->itr = auxtrace_record__init(rec->evlist, &err);
> if (err)
> @@ -1255,6 +1267,14 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
> if (err)
> goto out_symbol_exit;
>
> + /*
> + * We take all buildids when the file contains
> + * AUX area tracing data because we do not decode the
> + * trace because it would take too long.
> + */
> + if (rec->opts.full_auxtrace)
> + rec->buildid_all = true;
> +
> if (record_opts__config(&rec->opts)) {
> err = -EINVAL;
> goto out_symbol_exit;
> --
> 2.6.4
next prev parent reply other threads:[~2016-01-12 15:00 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-11 13:37 [PATCH] perf record: Add --buildid-all option Namhyung Kim
2016-01-11 13:38 ` [PATCH RESEND] " Namhyung Kim
2016-01-12 12:28 ` Adrian Hunter
2016-01-12 14:35 ` Arnaldo Carvalho de Melo
2016-01-13 8:47 ` Adrian Hunter
2016-01-12 15:00 ` Arnaldo Carvalho de Melo [this message]
2016-01-13 9:41 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
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=20160112150029.GB18367@kernel.org \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=andi@firstfloor.org \
--cc=dsahern@gmail.com \
--cc=eranian@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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.