• John Garry's avatar
    perf metricgroup: Fix metrics using aliases covering multiple PMUs · c2337d67
    John Garry authored
    Support for metric expressions using aliases which cover multiple PMUs
    is broken. Consider the following test metric expression:
    
      "MetricExpr": "UNC_CBO_XSNP_RESPONSE.MISS_XCORE * UNC_CBO_XSNP_RESPONSE.MISS_EVICTION"
    
    When used on my broadwell, "perf stat" gives:
    
      unc_cbo_xsnp_response.miss_eviction -> uncore_cbox_1/umask=0x81,event=0x22/
      unc_cbo_xsnp_response.miss_eviction -> uncore_cbox_0/umask=0x81,event=0x22/
      unc_cbo_xsnp_response.miss_xcore -> uncore_cbox_1/umask=0x41,event=0x22/
      unc_cbo_xsnp_response.miss_xcore -> uncore_cbox_0/umask=0x41,event=0x22/
      Control descriptor is not initialized
      unc_cbo_xsnp_response.miss_eviction: 3645925 1000850523 1000850523
      unc_cbo_xsnp_response.miss_xcore: 106850 1000850523 1000850523
    
       Performance counter stats for 'system wide':
    
               3,645,925      unc_cbo_xsnp_response.miss_eviction # 389567086250.00 test_metric_inc
                 106,850      unc_cbo_xsnp_response.miss_xcore
    
             1.000883096 seconds time elapsed
    
    Notice that only the results from one PMU are included. Fix the logic of
    find_evsel_group() to enable events which apply to multiple PMUs, by
    checking if the event pmu_name matches that of the metric event.
    
    With that, "perf stat" now gives:
    
      unc_cbo_xsnp_response.miss_eviction -> uncore_cbox_1/umask=0x81,event=0x22/
      unc_cbo_xsnp_response.miss_eviction -> uncore_cbox_0/umask=0x81,event=0x22/
      unc_cbo_xsnp_response.miss_xcore -> uncore_cbox_1/umask=0x41,event=0x22/
      unc_cbo_xsnp_response.miss_xcore -> uncore_cbox_0/umask=0x41,event=0x22/
      Control descriptor is not initialized
      unc_cbo_xsnp_response.miss_eviction: 4237983 1000904100 1000904100
      unc_cbo_xsnp_response.miss_xcore: 218643 1000904100 1000904100
      unc_cbo_xsnp_response.miss_eviction: 4254148 1000902629 1000902629
      unc_cbo_xsnp_response.miss_xcore: 213352 1000902629 1000902629
    
       Performance counter stats for 'system wide':
    
               4,237,983      unc_cbo_xsnp_response.miss_eviction # 3668558131345.00 test_metric_inc
                 218,643      unc_cbo_xsnp_response.miss_xcore
               4,254,148      unc_cbo_xsnp_response.miss_eviction
                 213,352      unc_cbo_xsnp_response.miss_xcore
    
             1.000938151 seconds time elapsed
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Acked-by: default avatarKajol Jain <kjain@linux.ibm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Joakim Zhang <qiangqing.zhang@nxp.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Kim Phillips <kim.phillips@amd.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linuxarm@huawei.com
    Link: http://lore.kernel.org/lkml/1607080216-36968-7-git-send-email-john.garry@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    c2337d67
metricgroup.c 29 KB