From: Stephane Eranian on
Hi,

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]
875ae61623e89f408b425ca0486a9ec99e3ac73e
/home/eranian/perfmon/official/tip/build/tools/perf/foo/noploop

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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/