perf report: Print percentage of each event statistics
It's sometimes useful to see how many samples vs other events in the
data file with percent values.
$ perf report --stat
Aggregated stats:
TOTAL events: 20064
MMAP events: 239 ( 1.2%)
COMM events: 1518 ( 7.6%)
EXIT events: 1 ( 0.0%)
FORK events: 1517 ( 7.6%)
SAMPLE events: 4015 (20.0%)
MMAP2 events: 12769 (63.6%)
FINISHED_ROUND events: 2 ( 0.0%)
THREAD_MAP events: 1 ( 0.0%)
CPU_MAP events: 1 ( 0.0%)
TIME_CONV events: 1 ( 0.0%)
cycles stats:
SAMPLE events: 2475
instructions stats:
SAMPLE events: 1540
Suggested-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210427013717.1651674-7-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
8f08cf3330
commit
462f57dbf9
@@ -902,6 +902,7 @@ size_t events_stats__fprintf(struct events_stats *stats, FILE *fp,
|
||||
{
|
||||
int i;
|
||||
size_t ret = 0;
|
||||
u32 total = stats->nr_events[0];
|
||||
|
||||
for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) {
|
||||
const char *name;
|
||||
@@ -912,7 +913,14 @@ size_t events_stats__fprintf(struct events_stats *stats, FILE *fp,
|
||||
if (skip_empty && !stats->nr_events[i])
|
||||
continue;
|
||||
|
||||
ret += fprintf(fp, "%16s events: %10d\n", name, stats->nr_events[i]);
|
||||
if (i && total) {
|
||||
ret += fprintf(fp, "%16s events: %10d (%4.1f%%)\n",
|
||||
name, stats->nr_events[i],
|
||||
100.0 * stats->nr_events[i] / total);
|
||||
} else {
|
||||
ret += fprintf(fp, "%16s events: %10d\n",
|
||||
name, stats->nr_events[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user