[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.058 / U:7.084 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site