[7/9] perf stat: Add header for interval in JSON output

Message ID 20221107213314.3239159-8-namhyung@kernel.org
State New
Headers
Series perf stat: Cleanup perf stat output display (v1) |

Commit Message

Namhyung Kim Nov. 7, 2022, 9:33 p.m. UTC
  It missed to print a matching header line for intervals.

Before:
  # perf stat -a -e cycles,instructions --metric-only -j -I 500
  {"unit" : "insn per cycle"}
  {"interval" : 0.500544283}{"metric-value" : "1.96"}
  ^C

After:
  # perf stat -a -e cycles,instructions --metric-only -j -I 500
  {"unit" : "sec"}{"unit" : "insn per cycle"}
  {"interval" : 0.500515681}{"metric-value" : "2.31"}
  ^C

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/stat-display.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Ian Rogers Nov. 8, 2022, 11:22 p.m. UTC | #1
On Mon, Nov 7, 2022 at 1:33 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> It missed to print a matching header line for intervals.
>
> Before:
>   # perf stat -a -e cycles,instructions --metric-only -j -I 500
>   {"unit" : "insn per cycle"}
>   {"interval" : 0.500544283}{"metric-value" : "1.96"}
>   ^C
>
> After:
>   # perf stat -a -e cycles,instructions --metric-only -j -I 500
>   {"unit" : "sec"}{"unit" : "insn per cycle"}
>   {"interval" : 0.500515681}{"metric-value" : "2.31"}
>   ^C
>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>

Acked-by: Ian Rogers <irogers@google.com>

Thanks,
Ian

> ---
>  tools/perf/util/stat-display.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
> index 25f67fb37f6d..aab2576bd40f 100644
> --- a/tools/perf/util/stat-display.c
> +++ b/tools/perf/util/stat-display.c
> @@ -860,6 +860,10 @@ static void print_metric_headers(struct perf_stat_config *config,
>                 if (!config->iostat_run)
>                         fputs(aggr_header_csv[config->aggr_mode], config->output);
>         }
> +       if (config->json_output) {
> +               if (config->interval)
> +                       fputs("{\"unit\" : \"sec\"}", config->output);
> +       }
>         if (config->iostat_run)
>                 iostat_print_header_prefix(config);
>
> --
> 2.38.1.431.g37b22c650d-goog
>
  

Patch

diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
index 25f67fb37f6d..aab2576bd40f 100644
--- a/tools/perf/util/stat-display.c
+++ b/tools/perf/util/stat-display.c
@@ -860,6 +860,10 @@  static void print_metric_headers(struct perf_stat_config *config,
 		if (!config->iostat_run)
 			fputs(aggr_header_csv[config->aggr_mode], config->output);
 	}
+	if (config->json_output) {
+		if (config->interval)
+			fputs("{\"unit\" : \"sec\"}", config->output);
+	}
 	if (config->iostat_run)
 		iostat_print_header_prefix(config);