Messages in this thread | | | Date | Wed, 29 Apr 2015 15:24:03 +0300 | From | Adrian Hunter <> | Subject | Re: [PATCH V3 05/25] perf tools: Hit all build ids when AUX area tracing |
| |
On 28/04/15 15:45, Jiri Olsa wrote: > On Fri, Apr 24, 2015 at 10:29:47PM +0300, Adrian Hunter wrote: >> We need to include all buildids when a perf.data >> file contains AUX area tracing data because we >> do not decode the trace for that purpose because >> it would take too long. >> >> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> >> --- >> tools/perf/builtin-buildid-list.c | 9 +++++++++ >> tools/perf/builtin-inject.c | 8 +++++++- >> tools/perf/builtin-record.c | 10 +++++++++- >> 3 files changed, 25 insertions(+), 2 deletions(-) >> >> diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c >> index feb420f..9fe93c8 100644 >> --- a/tools/perf/builtin-buildid-list.c >> +++ b/tools/perf/builtin-buildid-list.c >> @@ -69,6 +69,15 @@ static int perf_session__list_build_ids(bool force, bool with_hits) >> session = perf_session__new(&file, false, &build_id__mark_dso_hit_ops); >> if (session == NULL) >> return -1; >> + >> + /* >> + * 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 (!perf_data_file__is_pipe(&file) && >> + perf_header__has_feat(&session->header, HEADER_AUXTRACE)) >> + with_hits = false; > > when there's auxtrace in the perf.data, all the dsos would have > hits (as per builtin-record.c change below) and be display anyway, > so it seems we dont need this hunk?
When there's auxtrace in the perf.data file, then all dsos would be recorded with build ids in the build_id section.
This hunk causes: 1) no session processing to find hits 2) print all even if they have no hits
> > jirka > > SNIP > >> * synthesized hardware events, so clear the feature flag. >> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c >> index c8c784c..4d0ebbb 100644 >> --- a/tools/perf/builtin-record.c >> +++ b/tools/perf/builtin-record.c >> @@ -620,8 +620,16 @@ out_child: >> if (!err && !file->is_pipe) { >> rec->session->header.data_size += rec->bytes_written; >> >> - if (!rec->no_buildid) >> + 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) >> + dsos__hit_all(rec->session); >> + } >> perf_session__write_header(rec->session, rec->evlist, fd, true); >> } >> >> -- >> 1.9.1 >> > >
| |