Hello all,
I just tried out the new VTune 2015 feature of visualizing Linux perf data files. I have some issues with it. Since I could not find any list of known limitations, I raise them here in the hope that this feature will improve over time:
#include <cmath> using namespace std; int bar() { return cos(M_PI) * sin(0); } int foo() { return bar(); } int main() { for (int i = 0; i < 100000; ++i) { foo(); } return 0; }
and compiled it without aggressive optimizations to get some callgraphs without inlining and run perf on it:
g++ -g3 -O0 test.cpp -o test perf record --call-graph dwarf test perf report -g graph --no-children --stdio # To display the perf.data header info, please use --header/--header-only options. # # Samples: 25 of event 'cycles' # Event count (approx.): 8529342 # # Overhead Command Shared Object Symbol # ........ ....... ................. ................................................................................... # 25.82% test libm-2.20.so [.] 0x000000000001c923 | --- 0x7f77b8ce5923 __gnu_cxx::__enable_if<std::__is_integer<int>::__value, double>::__type std::sin<int>(int) bar() foo() main __libc_start_main _start
Opening the same data file in vtune though only shows [vmlinux] and [Outside any known module] without any call graph information.
I hope that someone will look into this and improve this feature for future releases.
Link Copied
Hi Milan,
Thanks for your feedback. You may try using -search-dir command line switch to point VTune to the dircetory with your binary. This may help resolving [Outside of any know module] samples to your code: amplxe-cl -import /path/to/perf.data -search-dir=/path/to/dir/with/binary. In GUI you may specify binary and sysmbol search paths over "Project Properties".
Regards, Alexey
For more complete information about compiler optimizations, see our Optimization Notice.