Hi,
The behavior of "perf script" has changed on recent kernels, and
I'm wondering whether this is a bug, or whether I'm just missing
something. (I'm perf script to generate DOT graphs for user-space
profiling via the gprof2dot script: https://github.com/jrfonseca/gprof2dot)
If I run perf record with --call-graph=dwarf, then I can run perf
report and view call-chains. However, if I run 'perf script' I don't
see any call chains, but just output like:
bali-phy 11043 10381.662885: 466982 cycles:
bali-phy 11043 10381.663136: 466737 cycles:
bali-phy 11043 10381.663386: 466456 cycles:
bali-phy 11043 10381.663636: 466465 cycles:
bali-phy 11043 10381.663885: 466611 cycles:
bali-phy 11043 10381.664135: 466757 cycles:
with an occasional
bali-phy 11043 10381.665885: 466867 cycles:
ffffffff81577e30 page_fault ([kernel.kallsyms])
If I run with --call-graph=lbr instead, then I get 'perf script'
output like this instead:
bali-phy 11060 10464.369184: 420718 cycles:
3437d0 all_characters_connected
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
3448c8 check_internal_nodes_connected
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
3450fc check_alignment
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
bali-phy 11060 10464.369412: 427217 cycles:
26ef10 alignment::alignment
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
305f7e empirical_frequencies
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
306ce1 empirical_frequencies
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
3330d9 get_smodel
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
4dc133 get_smodels
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
4e02ea create_A_and_T_model
(/home/bredelings/Devel/bali-phy/local/clang-3.7/bin/bali-phy)
This is more what I was expecting, and similar to what I used to get
with --call-graph=dwarf.
However, the call chains that I get using DWARF tend to be longer and
lead to more accurate results, so I would prefer to use DWARF instead of
lbr. Is there something that I'm doing wrong? Also, it seems like
--call-graph=dwarf successfully records call chains that can be seen via
perf report, but somehow 'perf script' doesn't show them. Could that
happen?
-BenRI
P.S. I'm using debian's kernel 4.1.0 and perf tools on a Core i3-4030.
--
To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html