• Ian Rogers's avatar
    perf stat: Don't display metric header for non-leader uncore events · 193a9e30
    Ian Rogers authored
    On an Intel tigerlake laptop a metric like:
    
        {
            "BriefDescription": "Test",
            "MetricExpr": "imc_free_running@data_read@ + imc_free_running@data_write@",
            "MetricGroup": "Test",
            "MetricName": "Test",
            "ScaleUnit": "6.103515625e-5MiB"
        },
    
    Will have 4 events:
    
      uncore_imc_free_running_0/data_read/
      uncore_imc_free_running_0/data_write/
      uncore_imc_free_running_1/data_read/
      uncore_imc_free_running_1/data_write/
    
    If aggregration is disabled with metric-only 2 column headers are
    needed:
    
      $ perf stat -M test --metric-only -A -a sleep 1
    
       Performance counter stats for 'system wide':
    
                        MiB  Test            MiB  Test
      CPU0                 1821.0               1820.5
    
    But when not, the counts aggregated in the metric leader and only 1
    column should be shown:
    
      $ perf stat -M test --metric-only -a sleep 1
       Performance counter stats for 'system wide':
    
                  MiB  Test
                    5909.4
    
             1.001258915 seconds time elapsed
    
    Achieve this by skipping events that aren't metric leaders when
    printing column headers and aggregation isn't disabled.
    
    The bug is long standing, the fixes tag is set to a refactor as that
    is as far back as is reasonable to backport.
    
    Fixes: 088519f3 ("perf stat: Move the display functions to stat-display.c")
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kaige Ye <ye@kaige.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: K Prateek Nayak <kprateek.nayak@amd.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Yicong Yang <yangyicong@hisilicon.com>
    Link: https://lore.kernel.org/r/20240510051309.2452468-1-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    193a9e30
stat-display.c 40.7 KB