perf stat: Print topology/time headers with --metric-only
PATCH 1/1 perf stat: Print topology/time headers with --metric-only
From: Andi Kleen <[email protected]>
When --metric-only is enabled there were no headers for the topology in interval mode. Fix this here.
Before
$ perf stat --metric-only -e cycles,instructions -a -I 1000
1.000554967 insn per cycle stalled cycles per insn
1.000554967 0.27
2.000862000 0.24
3.001354948 0.25After
$ perf stat --metric-only -e cycles,instructions -a -I 1000
1.000554967 insn per cycle stalled cycles per insn
1.000554967 0.27
2.000862000 0.24
3.001354948 0.25--- tools/perf/builtin-stat.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-)
tools/perf/builtin-stat.c +21 -6
@@ -1347,23 +1347,38 @@ static void print_interval(char *prefix, struct timespec *ts)sprintf (prefix,"%6lu.%09lu%s" , ts->tv_sec, ts->tv_nsec, csv_sep); -if (num_print_interval ==0 && !csv_output && !metric_only) { +if (num_print_interval ==0 && !csv_output) {switch (stat_config.aggr_mode) {case AGGR_SOCKET : -fprintf (output,"# time socket cpus counts %*s events\n" , unit_width,"unit" ); +fprintf (output,"# time socket cpus" ); +if (!metric_only) +fprintf (output," counts %*s events" , unit_width,"unit" ); +fputc ('\n' , output);break ;case AGGR_CORE : -fprintf (output,"# time core cpus counts %*s events\n" , unit_width,"unit" ); +fprintf (output,"# time core cpus" ); +if (!metric_only) +fprintf (output," counts %*s events" , unit_width,"unit" ); +fputc ('\n' , output);break ;case AGGR_NONE : -fprintf (output,"# time CPU counts %*s events\n" , unit_width,"unit" ); +fprintf (output,"# time CPU" ); +if (!metric_only) +fprintf (output," counts %*s events" , unit_width,"unit" ); +fputc ('\n' , output);break ;case AGGR_THREAD : -fprintf (output,"# time comm-pid counts %*s events\n" , unit_width,"unit" ); +fprintf (output,"# time comm-pid" ); +if (!metric_only) +fprintf (output," counts %*s events\n" , unit_width,"unit" ); +fputc ('\n' , output);break ;case AGGR_GLOBAL :default : -fprintf (output,"# time counts %*s events\n" , unit_width,"unit" ); +fprintf (output,"# time" ); +if (!metric_only) +fprintf (output," counts %*s events\n" , unit_width,"unit" ); +fputc ('\n' , output);case AGGR_UNSET :break ; }
Signature · 1 line
2.5.5
Quoted 13 lines · Andi Kleen
From: Andi Kleen <[email protected]>
When --metric-only is enabled there were no headers for the topology in interval mode. Fix this here.
Before
$ perf stat --metric-only -e cycles,instructions -a -I 1000 1.000554967 insn per cycle stalled cycles per insn 1.000554967 0.27 2.000862000 0.24 3.001354948 0.25
Quoted 7 lines
After
$ perf stat --metric-only -e cycles,instructions -a -I 1000 1.000554967 insn per cycle stalled cycles per insn 1.000554967 0.27 2.000862000 0.24 3.001354948 0.25
hum, I'm getting something else:
[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --topdown -I 1000 -a nmi_watchdog enabled with topdown. May give wrong results. Disable with echo 0 > /proc/sys/kernel/nmi_watchdog
# time core cpus
1.001710838 retiring bad speculation frontend bound backend bound
1.001710838 S0-C0 2 38.1% -0.0% 58.8% 3.1%
1.001710838 S0-C1 2 38.0% 0.0% 59.4% 2.5% [jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --metric-only -e cycles,instructions -a -I 1000
# time
1.000756338 insn per cycle stalled cycles per insn
1.000756338 0.32
2.001155562 0.30 jirka
Quoted 11 lines
hum, I'm getting something else:
[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --topdown -I 1000 -a
nmi_watchdogenabled with topdown. May give wrong results. Disable with echo 0 >/proc/sys/kernel/nmi_watchdog
# time core cpus1.001710838 retiring bad speculation frontend bound backend bound 1.001710838 S0-C0 2 38.1% -0.0% 58.8% 3.1% 1.001710838 S0-C1 2 38.0% 0.0% 59.4% 2.5%
Quoted 5 lines
[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --metric-only -e cycles,instructions -a -I 1000
# time1.000756338 insn per cycle stalled cycles per insn 1.000756338 0.32 2.001155562 0.30
Right sorry, that was me not cutting and pasting correctly.
Your output is correct and intended.
-Andi
Signature · 1 line
[email protected] -- Speaking for myself only
Quoted 17 lines · Andi Kleen
Quoted 11 lines
hum, I'm getting something else:
[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --topdown -I 1000 -a
nmi_watchdogenabled with topdown. May give wrong results. Disable with echo 0 >/proc/sys/kernel/nmi_watchdog
# time core cpus1.001710838 retiring bad speculation frontend bound backend bound 1.001710838 S0-C0 2 38.1% -0.0% 58.8% 3.1% 1.001710838 S0-C1 2 38.0% 0.0% 59.4% 2.5%Quoted 5 lines
[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --metric-only -e cycles,instructions -a -I 1000
# time1.000756338 insn per cycle stalled cycles per insn 1.000756338 0.32 2.001155562 0.30
Quoted 3 lines
Right sorry, that was me not cutting and pasting correctly.
Your output is correct and intended.
hum, I dont think so.. headers should be on the same line, right?
jirka
Quoted 18 lines · Jiri Olsa
Quoted 17 lines · Andi Kleen
Quoted 16 lines
hum, I'm getting something else:
[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --topdown -I 1000 -a
nmi_watchdogenabled with topdown. May give wrong results. Disable with echo 0 >/proc/sys/kernel/nmi_watchdog
# time core cpus1.001710838 retiring bad speculation frontend bound backend bound 1.001710838 S0-C0 2 38.1% -0.0% 58.8% 3.1% 1.001710838 S0-C1 2 38.0% 0.0% 59.4% 2.5%[jolsa@ibm-x3650m4-01 perf]$ sudo ./perf stat --metric-only -e cycles,instructions -a -I 1000
# time1.000756338 insn per cycle stalled cycles per insn 1.000756338 0.32 2.001155562 0.30
Quoted 5 lines
Quoted 3 lines
Right sorry, that was me not cutting and pasting correctly.
Your output is correct and intended.
hum, I dont think so.. headers should be on the same line, right?
I posted new patches which move it to the same line, and also fix another bug I noticed.
-Andi
Signature · 1 line
[email protected] -- Speaking for myself only