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 <[email protected]>
>> ---
>>  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
>>
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to