Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Thu, 9 May 2024 22:13:09 -0700 | Subject | [PATCH v1] perf stat: Don't display metric header for non-leader uncore events | From | Ian Rogers <> |
| |
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: 088519f318be ("perf stat: Move the display functions to stat-display.c") Signed-off-by: Ian Rogers <irogers@google.com> --- tools/perf/util/stat-display.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c index ea11e3437444..bb6bbb821b5a 100644 --- a/tools/perf/util/stat-display.c +++ b/tools/perf/util/stat-display.c @@ -1251,6 +1251,9 @@ static void print_metric_headers(struct perf_stat_config *config, /* Print metrics headers only */ evlist__for_each_entry(evlist, counter) { + if (config->aggr_mode != AGGR_NONE && counter->metric_leader != counter) + continue; + os.evsel = counter; perf_stat__print_shadow_stats(config, counter, 0, -- 2.45.0.118.g7fe29c98d7-goog
| ![\](/images/icornerr.gif) |