Messages in this thread | | | Date | Tue, 12 Jan 2016 11:35:36 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH RESEND] perf record: Add --buildid-all option |
| |
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
| |