hotspot icon indicating copy to clipboard operation
hotspot copied to clipboard

investigate cpp-recursion unwind errors

Open milianw opened this issue 6 years ago • 0 comments

perf and hotspot both fail to unwind many samples for the cpp-recursion example:

┌milian@agathebauer:~/projects/kdab/rnd/hotspot/build|master *>
└$ perf record --call-graph dwarf -c 1000000 ./tests/test-clients/cpp-recursion/cpp-recursion 40
fib(40) = 165580141
[ perf record: Woken up 40 times to write data ]
[ perf record: Captured and wrote 9.969 MB perf.data (1238 samples) ]
┌milian@agathebauer:~/projects/kdab/rnd/hotspot/build|master>
└$ perf script
cpp-recursion  3229 19478.124517: cycles:uppp: 
                    bb40 _dl_relocate_object (/usr/lib/ld-2.26.so)
                    3f26 dl_main (/usr/lib/ld-2.26.so)
                   18af2 _dl_sysdep_start (/usr/lib/ld-2.26.so)
                    1df7 _dl_start (/usr/lib/ld-2.26.so)
                     f37 _start (/usr/lib/ld-2.26.so)

cpp-recursion  3229 19478.124904: cycles:uppp: 
                    1295 fibonacci (/home/milian/projects/kdab/rnd/hotspot/build/tests/test-clients/cpp-recursion/cpp-recursion)
                fffffffe [unknown] ([unknown])

cpp-recursion  3229 19478.125231: cycles:uppp: 
                    12b0 fibonacci (/home/milian/projects/kdab/rnd/hotspot/build/tests/test-clients/cpp-recursion/cpp-recursion)
        ffffffffffffffff [unknown] ([unknown])

cpp-recursion  3229 19478.125558: cycles:uppp: 
                    12b0 fibonacci (/home/milian/projects/kdab/rnd/hotspot/build/tests/test-clients/cpp-recursion/cpp-recursion)
                fffffffe [unknown] ([unknown])

We need to figure out what's going on here and find a solution. Note that this affects both, libunwind and libdw unwinders. Potentially an issue with the DWARF debug info, and/or tail-call optimizations or something like that?

milianw avatar Sep 28 '17 13:09 milianw