summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/callchain.c
diff options
context:
space:
mode:
authorJin Yao <yao.jin@linux.intel.com>2020-10-09 10:28:44 +0800
committerArnaldo Carvalho de Melo <acme@redhat.com>2020-10-14 13:34:26 -0300
commit5bbd6bad3b058bb28f41b97bf67a3cc3e52d09e6 (patch)
tree5764bad14f93726a3792fa905198d6a8b837726f /tools/perf/util/callchain.c
parent28904f4dcea1444adea4b51ba0af32d6c7314101 (diff)
downloadlinux-5bbd6bad3b058bb28f41b97bf67a3cc3e52d09e6.tar.gz
linux-5bbd6bad3b058bb28f41b97bf67a3cc3e52d09e6.tar.bz2
linux-5bbd6bad3b058bb28f41b97bf67a3cc3e52d09e6.zip
perf streams: Report hot streams
We show the streams separately. They are divided into different sections. 1. "Matched hot streams" 2. "Hot streams in old perf data only" 3. "Hot streams in new perf data only". For each stream, we report the cycles and hot percent (hits%). For example, cycles: 2, hits: 4.08% -------------------------- main div.c:42 compute_flag div.c:28 Signed-off-by: Jin Yao <yao.jin@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/r/20201009022845.13141-7-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/callchain.c')
-rw-r--r--tools/perf/util/callchain.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
index 4f824bfcc072..1b60985690bb 100644
--- a/tools/perf/util/callchain.c
+++ b/tools/perf/util/callchain.c
@@ -1699,3 +1699,16 @@ u64 callchain_total_hits(struct hists *hists)
return chain_hits;
}
+
+s64 callchain_avg_cycles(struct callchain_node *cnode)
+{
+ struct callchain_list *chain;
+ s64 cycles = 0;
+
+ list_for_each_entry(chain, &cnode->val, list) {
+ if (chain->srcline && chain->branch_count)
+ cycles += chain->cycles_count / chain->branch_count;
+ }
+
+ return cycles;
+}