Patch "perf stat: Don't display metric header for non-leader uncore events" has been added to the 6.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    perf stat: Don't display metric header for non-leader uncore events

to the 6.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     perf-stat-don-t-display-metric-header-for-non-leader.patch
and it can be found in the queue-6.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f9244607be54b8536709f494934957c0ead73fae
Author: Ian Rogers <irogers@xxxxxxxxxx>
Date:   Thu May 9 22:13:09 2024 -0700

    perf stat: Don't display metric header for non-leader uncore events
    
    [ Upstream commit 193a9e30207f54777ff42d0d8be8389edc522277 ]
    
    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: 088519f318be3a41 ("perf stat: Move the display functions to stat-display.c")
    Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
    Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
    Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
    Cc: Ingo Molnar <mingo@xxxxxxxxxx>
    Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
    Cc: Kaige Ye <ye@xxxxxxxxx>
    Cc: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
    Cc: K Prateek Nayak <kprateek.nayak@xxxxxxx>
    Cc: Mark Rutland <mark.rutland@xxxxxxx>
    Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
    Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
    Cc: Yicong Yang <yangyicong@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240510051309.2452468-1-irogers@xxxxxxxxxx
    Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
index bfc1d705f4371..91d2f7f65df74 100644
--- a/tools/perf/util/stat-display.c
+++ b/tools/perf/util/stat-display.c
@@ -1223,6 +1223,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,




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux