• Namhyung Kim's avatar
    perf stat: Hide invalid uncore event output for aggr mode · dd15480a
    Namhyung Kim authored
    The current display code for perf stat iterates given cpus and build the
    aggr map to collect the event data for the aggregation mode.
    
    But uncore events have their own cpu maps and it won't guarantee that
    it'd match to the aggr map.  For example, per-package uncore events
    would generate a single value for each socket.  When user asks per-core
    aggregation mode, the output would contain 0 values for other cores.
    
    Thus it needs to check the uncore PMU's cpumask and if it matches to the
    current aggregation id.
    
    Before:
      $ sudo ./perf stat -a --per-core -e power/energy-pkg/ sleep 1
    
       Performance counter stats for 'system wide':
    
      S0-D0-C0              1               3.73 Joules power/energy-pkg/
      S0-D0-C1              0      <not counted> Joules power/energy-pkg/
      S0-D0-C2              0      <not counted> Joules power/energy-pkg/
      S0-D0-C3              0      <not counted> Joules power/energy-pkg/
    
             1.001404046 seconds time elapsed
    
      Some events weren't counted. Try disabling the NMI watchdog:
      	echo 0 > /proc/sys/kernel/nmi_watchdog
      	perf stat ...
      	echo 1 > /proc/sys/kernel/nmi_watchdog
    
    The core 1, 2 and 3 should not be printed because the event is handled
    in a cpu in the core 0 only.  With this change, the output becomes like
    below.
    
    After:
      $ sudo ./perf stat -a --per-core -e power/energy-pkg/ sleep 1
    
       Performance counter stats for 'system wide':
    
      S0-D0-C0              1               2.09 Joules power/energy-pkg/
    
    Fixes: b8976135 ("perf stat: Update event skip condition for system-wide per-thread mode and merged uncore and hybrid events")
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Tested-by: default avatarIan Rogers <irogers@google.com>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230125192431.2929677-1-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    dd15480a
stat-display.c 36.5 KB