Tested the following on bionic:

$ cat main.cpp
#include <benchmark/benchmark.h>
#include <vector>

static __attribute__ ((noinline)) int my_really_big_function()
{
  for(size_t i = 0; i < 1000; ++i)
  {
    benchmark::DoNotOptimize(i % 5);
  }
  return 0;
}

static __attribute__ ((noinline)) void caller1()
{
  for(size_t i = 0; i < 1000; ++i)
  {
    benchmark::DoNotOptimize(my_really_big_function());
    benchmark::DoNotOptimize(i % 5);
  }
}

static __attribute__ ((noinline)) void myfun(benchmark::State& state)
{
  while(state.KeepRunning())
  {
    caller1();
  }
}

BENCHMARK(myfun);

BENCHMARK_MAIN();

$ clang++ main.cpp -o main -fno-omit-frame-pointer -O0 -lpthread
-lbenchmark

$ perf record -g ./main

$ perf report -g 'graph,0.5,caller'

Result:

 - with linux-tools-common 4.15.0-46.49:

Samples: 3K of event 'cpu-clock', Event count (approx.): 757250000
  Children      Self  Command  Shared Object          Symbol
+   99.67%     0.00%  main     libbenchmark.so.1.3.0  [.] 0x0000000000015b58
+   99.67%     0.00%  main     main                   [.] 
_ZL5myfunRN9benchmark5StateE
+   99.64%     0.17%  main     main                   [.] _ZL7caller1v
+   99.50%    99.47%  main     main                   [.] 
_ZL22my_really_big_functionv
...

 - with linux-tools-common 4.15.0-47.50 (from -proposed):

Samples: 3K of event 'cpu-clock', Event count (approx.): 755000000
  Children      Self  Command  Shared Object          Symbol
+   99.77%     0.00%  main     libbenchmark.so.1.3.0  [.] 0x0000000000015b58
+   99.77%     0.00%  main     main                   [.] myfun
+   99.70%     0.13%  main     main                   [.] caller1
+   99.64%    99.64%  main     main                   [.] my_really_big_function
...

This problem seems fixed now.

** Tags removed: verification-failed-bionic
** Tags added: verification-done-bionic

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1396654

Title:
  C++ demangling support missing from perf

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1396654/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to