• Ian Rogers's avatar
    perf stat: Correct aggregation CPU map · 01843ca0
    Ian Rogers authored
    Switch the perf_cpu_map in aggr_update_shadow from
    the evlist to the counter's cpu map, so the index is appropriate. This
    addresses a problem where uncore counts, with a cpumap like:
    $ cat /sys/devices/uncore_imc_0/cpumask
    0,18
    Don't aggregate counts in CPUs based on the index of those values in the
    cpumap (0 and 1) but on the actual CPU (0 and 18). Thereby correcting
    metric calculations in per-socket mode for counters without a full
    cpumask.
    
    On a SkylakeX with a tweaked DRAM_BW_Use metric, to remove unnecessary
    scaling, this gives:
    
    Before:
    $ /perf stat --per-socket -M DRAM_BW_Use -I 1000
         1.001102293 S0        1              27.01 MiB  uncore_imc/cas_count_write/ #   103.00 DRAM_BW_Use
         1.001102293 S0        1              30.22 MiB  uncore_imc/cas_count_read/
         1.001102293 S0        1      1,001,102,293 ns   duration_time
         1.001102293 S1        1              20.10 MiB  uncore_imc/cas_count_write/ #     0.00 DRAM_BW_Use
         1.001102293 S1        1              32.74 MiB  uncore_imc/cas_count_read/
         1.001102293 S1        0      <not counted> ns   duration_time
         2.003517973 S0        1              83.04 MiB  uncore_imc/cas_count_write/ #   920.00 DRAM_BW_Use
         2.003517973 S0        1             145.95 MiB  uncore_imc/cas_count_read/
         2.003517973 S0        1      1,002,415,680 ns   duration_time
         2.003517973 S1        1             302.45 MiB  uncore_imc/cas_count_write/ #     0.00 DRAM_BW_Use
         2.003517973 S1        1             290.99 MiB  uncore_imc/cas_count_read/
         2.003517973 S1        0      <not counted> ns   duration_time
    
    After:
    $ perf stat --per-socket -M DRAM_BW_Use -I 1000
         1.001080840 S0        1              24.96 MiB  uncore_imc/cas_count_write/ #    54.00 DRAM_BW_Use
         1.001080840 S0        1              33.64 MiB  uncore_imc/cas_count_read/
         1.001080840 S0        1      1,001,080,840 ns   duration_time
         1.001080840 S1        1              42.43 MiB  uncore_imc/cas_count_write/ #    84.00 DRAM_BW_Use
         1.001080840 S1        1              47.05 MiB  uncore_imc/cas_count_read/
         1.001080840 S1        0      <not counted> ns   duration_time
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Tested-by: default avatarJohn Garry <john.garry@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Clarke <pc@us.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Riccardo Mancini <rickyman7@gmail.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: Vineet Singh <vineet.singh@intel.com>
    Cc: coresight@lists.linaro.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: zhengjun.xing@intel.com
    Link: https://lore.kernel.org/r/20220105061351.120843-4-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    01843ca0
stat-display.c 32.3 KB