2

I am having trouble generating a useful call-graph using opreport. The results all come out completely flat with each function being called only by itself and then calling only itself, somewhat confusingly.

-------------------------------------------------------------------------------
  17875174 17875174      99.9325  99.9325    myProg.x               FTL::ReclaimWriteStateMachine()
17875173 17875173       9.1289   9.1289    myProg.x               FTL::ReclaimWriteStateMachine()
  17875174 17875174      49.9925  49.9925    myProg.x               FTL::ReclaimWriteStateMachine()
  17875173 35750347      49.9925  99.9850    myProg.x               FTL::ReclaimWriteStateMachine() [self]
-------------------------------------------------------------------------------
  14133500 14133500      100.000  100.000    myProg.x               Superblock::PageDataStore::ValidUnits() const
14133500 32008673       7.2180  16.3469    myProg.x               Superblock::PageDataStore::ValidUnits() const
  14133500 14133500      49.9739  49.9739    myProg.x               Superblock::PageDataStore::ValidUnits() const
  14133500 28267000      49.9739  99.9479    myProg.x               Superblock::PageDataStore::ValidUnits() const [self]
-------------------------------------------------------------------------------
e.t.c

I have read this documentation, to no avail.

I am running operf -g ./myProg.x to generate the profiling information, and opreport -lact 1 to view the callgraph data.

I am also seeing this error a lot warning: dropping hyperspace sample at offset, but as far as I am aware that is not related to my call-graph issue.


I have checked the output for the profiling of ls by operf -g ls -la resulting in

-------------------------------------------------------------------------------
  1        1              4.1667   4.1667    ld-2.17.so               _dl_lookup_symbol_x
  1        2              4.1667   8.3333    ld-2.17.so               _dl_setup_hash
  1        3              4.1667  12.5000    ld-2.17.so               _dl_load_cache_lookup
  1        4              4.1667  16.6667    ld-2.17.so               access
  1        5              4.1667  20.8333    libc-2.17.so             brk
  1        6              4.1667  25.0000    libc-2.17.so             _itoa_word
  1        7              4.1667  29.1667    libc-2.17.so             __GI_strncmp
  1        8              4.1667  33.3333    libc-2.17.so             __xstat
  1        9              4.1667  37.5000    libc-2.17.so             __lxstat
  1        10             4.1667  41.6667    libc-2.17.so             mmap64
  1        11             4.1667  45.8333    libc-2.17.so             xdr_u_long
  1        12             4.1667  50.0000    libpthread-2.17.so       __pthread_initialize_minimal
  2        14             8.3333  58.3333    ld-2.17.so               mprotect
  2        16             8.3333  66.6667    libc-2.17.so             __sendto_nocancel
  3        19            12.5000  79.1667    libc-2.17.so             __getdents
  5        24            20.8333  100.000    ld-2.17.so               mmap
31       31            60.7843  60.7843    no-vmlinux               /no-vmlinux
  31       31            100.000  100.000    no-vmlinux               /no-vmlinux [self]
-------------------------------------------------------------------------------
3        34             5.8824  66.6667    ls                       /usr/bin/ls
  3        3             100.000  100.000    ls                       /usr/bin/ls [self]
-------------------------------------------------------------------------------
e.t.c

leading me to believe that the issue isn't with my installation of oprofile, will try to tweak how I build my excecutable

Troyseph
  • 4,960
  • 3
  • 38
  • 61

0 Answers0