* [PATCH] perf record: Add --buildid-all option @ 2016-01-11 13:37 Namhyung Kim 2016-01-11 13:38 ` [PATCH RESEND] " Namhyung Kim 2016-01-13 9:41 ` [tip:perf/urgent] " tip-bot for Namhyung Kim 0 siblings, 2 replies; 7+ messages in thread From: Namhyung Kim @ 2016-01-11 13:37 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern, Adrian Hunter, Andi Kleen, Stephane Eranian 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. 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 | 26 ++++++++++++++++++++------ 2 files changed, 23 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..319712a4e02b 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, + "Record build-id of all DSOs regardless of hits"), OPT_END() }; @@ -1255,6 +1261,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 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RESEND] perf record: Add --buildid-all option 2016-01-11 13:37 [PATCH] perf record: Add --buildid-all option Namhyung Kim @ 2016-01-11 13:38 ` Namhyung Kim 2016-01-12 12:28 ` Adrian Hunter 2016-01-12 15:00 ` Arnaldo Carvalho de Melo 2016-01-13 9:41 ` [tip:perf/urgent] " tip-bot for Namhyung Kim 1 sibling, 2 replies; 7+ messages in thread From: Namhyung Kim @ 2016-01-11 13:38 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern, Adrian Hunter, Andi Kleen, Stephane Eranian 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. 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 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] perf record: Add --buildid-all option 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-12 15:00 ` Arnaldo Carvalho de Melo 1 sibling, 1 reply; 7+ messages in thread From: Adrian Hunter @ 2016-01-12 12:28 UTC (permalink / raw) To: Namhyung Kim, Arnaldo Carvalho de Melo Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern, Andi Kleen, Stephane Eranian On 11/01/16 15:38, Namhyung Kim wrote: > 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. > > 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; I wonder, if we are not processing samples, could the processing could be much simpler? All we need to do is read all the MMAP events, in any order, and create DSOs - no need to create threads or map-groups etc etc. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] perf record: Add --buildid-all option 2016-01-12 12:28 ` Adrian Hunter @ 2016-01-12 14:35 ` Arnaldo Carvalho de Melo 2016-01-13 8:47 ` Adrian Hunter 0 siblings, 1 reply; 7+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-12 14:35 UTC (permalink / raw) To: Adrian Hunter Cc: Namhyung Kim, Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern, Andi Kleen, Stephane Eranian Em Tue, Jan 12, 2016 at 02:28:22PM +0200, Adrian Hunter escreveu: > On 11/01/16 15:38, Namhyung Kim wrote: > > 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. > > > > 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; > > I wonder, if we are not processing samples, could the processing could be > much simpler? > All we need to do is read all the MMAP events, in any order, and create DSOs > - no need to > create threads or map-groups etc etc. Right, if that was the overhead, have you ever measured this? - Arnaldo ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] perf record: Add --buildid-all option 2016-01-12 14:35 ` Arnaldo Carvalho de Melo @ 2016-01-13 8:47 ` Adrian Hunter 0 siblings, 0 replies; 7+ messages in thread From: Adrian Hunter @ 2016-01-13 8:47 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Namhyung Kim, Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern, Andi Kleen, Stephane Eranian On 12/01/16 16:35, Arnaldo Carvalho de Melo wrote: > Em Tue, Jan 12, 2016 at 02:28:22PM +0200, Adrian Hunter escreveu: >> On 11/01/16 15:38, Namhyung Kim wrote: >>> 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. >>> >>> 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; >> >> I wonder, if we are not processing samples, could the processing could be >> much simpler? >> All we need to do is read all the MMAP events, in any order, and create DSOs >> - no need to >> create threads or map-groups etc etc. > > Right, if that was the overhead, have you ever measured this? No, it was just a thought. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] perf record: Add --buildid-all option 2016-01-11 13:38 ` [PATCH RESEND] " Namhyung Kim 2016-01-12 12:28 ` Adrian Hunter @ 2016-01-12 15:00 ` Arnaldo Carvalho de Melo 1 sibling, 0 replies; 7+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-12 15:00 UTC (permalink / raw) To: Namhyung Kim Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern, Adrian Hunter, Andi Kleen, Stephane Eranian 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 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [tip:perf/urgent] perf record: Add --buildid-all option 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-13 9:41 ` tip-bot for Namhyung Kim 1 sibling, 0 replies; 7+ messages in thread From: tip-bot for Namhyung Kim @ 2016-01-13 9:41 UTC (permalink / raw) To: linux-tip-commits Cc: acme, eranian, peterz, adrian.hunter, hpa, linux-kernel, mingo, namhyung, tglx, andi, jolsa, dsahern Commit-ID: 6156681b73f2fffe56493e9a50518c0cbfcd8ba3 Gitweb: http://git.kernel.org/tip/6156681b73f2fffe56493e9a50518c0cbfcd8ba3 Author: Namhyung Kim <namhyung@kernel.org> AuthorDate: Mon, 11 Jan 2016 22:37:09 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Tue, 12 Jan 2016 12:42:07 -0300 perf record: Add --buildid-all option 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. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1452519429-31779-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/perf-record.txt | 3 +++ tools/perf/builtin-record.c | 26 ++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt index 3a1a32f..fbceb63 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 dc4e0ad..319712a 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, + "Record build-id of all DSOs regardless of hits"), OPT_END() }; @@ -1255,6 +1261,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; ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-01-13 9:42 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 2016-01-13 9:41 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
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.