Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4995 Discussions

Visualization of Linux perf data files

Milian_W_
Beginner
388 Views

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:

  • one cannot open perf.data or perf.data.old files. The files apparently must end with the  .perf suffix. This is cumbersome, as perf defaults to write perf.data files and rotates the file to perf.data.old. So it would be nice if you could make sure one can also open these files directly without having to rename them first.
  • I cannot see any userspace data. I used this example file:
    #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.

0 Kudos
1 Reply
Alexey_B_Intel
Employee
388 Views

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

0 Kudos
Reply