[lkml]   [2010]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[BUG] perf: buildid not managed properly when cmd path is relative

I ran into another problem while running more tests with
perf record, perf buildid-list.

I do the following:

$ perf record foo/noploop 5
$ perf buildid-list
54b1e7cc3cf52e0db255aab44ce7538eb62655b8 [kernel.kallsyms]

I know I have samples in noploop:
$ perf report -D
0x10a0 [0x20]: PERF_RECORD_SAMPLE(IP, 2): 14721/14721: 0x4006d6 period: 2351576
... thread: noploop:14721
...... dso: ./foo/noploop
But if I ask with buildid-list (like per-archive is doing) then I get:

$ perf buildid-list --with-hits
54b1e7cc3cf52e0db255aab44ce7538eb62655b8 [kernel.kallsyms]
0000000000000000000000000000000000000000 ./foo/noploop
The builid is bogus for noploop and it is relative path not full anymore.

I instrumented __dsos__fprintf_buildid() and I get:
hit=0 name=/home/eranian/perfmon/official/tip/build/tools/perf/foo/noploop
hit=1 name=./foo/noploop
0000000000000000000000000000000000000000 ./foo/noploop
So it looks like when cmd is relative there are two entries but the one
that counts the hits is the one with relative path. But is does not have
the buildid, the full path entry does.

This is an issue because perf-archive only packages the
content of .debug with hits.

The problem does not exists when cmd are found from PATH.

 \ /
  Last update: 2010-05-27 15:49    [W:0.065 / U:5.448 seconds]
©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site