I am looking at this output of perf report -g
.
Children Self Command Shared Object Symbol
- 87.46% 3.94% my_cmd libgomp.so.1.0.0 [.] omp_in_final
+ 83.53% omp_in_final
+ 2.81% clone
+ 1.12% _start
Based on the perf wiki, my understanding is that the 3.94% and the 87.46% values shown mean that 3.94% of the samples taken occurred directly in the omp_in_final
function, while 87.46% of the samples occurred either within the omp_in_final
function or a function called by omp_in_final
.
What isn't clear to me is what the 83.53% value above is indicating. Since the symbol associated with this value is also omp_in_final
, I am not sure why that value is different from the 87.46% value above. Can anyone offer help about why these values are different?
Also, since the graph is in "caller" mode, I think this means that the output is indicating that omp_in_final
is calling clone
and start_
. But, if this is the case, then what are the symbols that are shown underneath omp_in_final
when I expand it? Are these functions that called omp_in_final
?
- 87.46% 3.94% my_cmd libgomp.so.1.0.0 [.] omp_in_final
- 83.53% omp_in_final
38.80% omp_get_num_procs
+ 21.33% do_manual_omp_version._omp_fn.0
+ 3.61% do_bestcase_omp_version._omp_fn.0
+ 3.39% do_omp_barrier_only._omp_fn.0
.
.
.
I have looked at the perf report
examples on the perf wiki, and I've come across some helpful examples (like this one) that cover other cases. But I haven't yet seen a case like the one above - where the omp_in_final
has a symbol under it that is also omp_in_final
but with a different percentage next to it.