summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/annotate.h
diff options
context:
space:
mode:
authorAndi Kleen2015-07-18 17:24:50 +0200
committerArnaldo Carvalho de Melo2015-08-06 21:36:12 +0200
commit30e863bb6f708c0abd422fbb0e6b295f5ee6407b (patch)
tree61f2ba3ee89bb1162a3e2f4275194589c1ae97f0 /tools/perf/util/annotate.h
parentperf report: Add processing for cycle histograms (diff)
downloadkernel-qcow2-linux-30e863bb6f708c0abd422fbb0e6b295f5ee6407b.tar.gz
kernel-qcow2-linux-30e863bb6f708c0abd422fbb0e6b295f5ee6407b.tar.xz
kernel-qcow2-linux-30e863bb6f708c0abd422fbb0e6b295f5ee6407b.zip
perf annotate: Compute IPC and basic block cycles
Compute the IPC and the basic block cycles for the annotate display. IPC is computed by counting the instructions, and then dividing the accounted cycles by that count. The actual IPC computation can only be done at annotate time, because we need to parse the objdump output first to know the number of instructions in the basic block. The cycles/IPC are also put into the perf function annotation so that the display code can show them. Again basic block overlaps are not handled, with the longest winning, but there are some heuristics to hide the IPC when the longest is not the most common. v2: Compute IPC correctly. Signed-off-by: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/1437233094-12844-6-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/annotate.h')
-rw-r--r--tools/perf/util/annotate.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h
index a06518dca4b7..e9996092a093 100644
--- a/tools/perf/util/annotate.h
+++ b/tools/perf/util/annotate.h
@@ -59,6 +59,8 @@ struct disasm_line {
char *name;
struct ins *ins;
int line_nr;
+ float ipc;
+ u64 cycles;
struct ins_operands ops;
};