Re: [PATCH V3 05/25] perf tools: Hit all build ids when AUX area tracing

Jiri Olsa
2015-04-28T12:50:28Z

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?

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
>