• Namhyung Kim's avatar
    perf stat: Fix JSON output in metric-only mode · ab6baaae
    Namhyung Kim authored
    
    
    It generated a broken JSON output when aggregation mode or cgroup is
    used with --metric-only option.  Also get rid of the header line and
    make the output single line for each entry.
    
    It needs to know whether the current metric is the first one or not.
    So add 'first' field in the outstate and mark it false after printing.
    
    Before:
    
      # perf stat -a -j --metric-only true
      {"unit" : "GHz"}{"unit" : "insn per cycle"}{"unit" : "branch-misses of all branches"}
      {{"metric-value" : "0.797"}{"metric-value" : "1.65"}{"metric-value" : "0.89"}
       ^
    
      # perf stat -a -j --metric-only --per-socket true
      {"unit" : "GHz"}{"unit" : "insn per cycle"}{"unit" : "branch-misses of all branches"}
      {"socket" : "S0", "aggregate-number" : 8, {"metric-value" : "0.295"}{"metric-value" : "1.88"}{"metric-value" : "0.64"}
                                               ^
    
    After:
    
      # perf stat -a -j --metric-only true
      {"GHz" : "0.990", "insn per cycle" : "2.06", "branch-misses of all branches" : "0.59"}
    
      # perf stat -a -j --metric-only --per-socket true
      {"socket" : "S0", "aggregate-number" : 8, "GHz" : "0.439", "insn per cycle" : "2.14", "branch-misses of all branches" : "0.51"}
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
    Link: https://lore.kernel.org/r/20221123180208.2068936-14-namhyung@kernel.org
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ab6baaae
stat-display.c 35.2 KB