[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.019 / U:8.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site