• Andi Kleen's avatar
    perf stat: Fix group lookup for metric group · 2f87f33f
    Andi Kleen authored
    The metric group code tries to find a group it added earlier in the
    evlist. Fix the lookup to handle groups with partially overlaps
    correctly. When a sub string match fails and we reset the match, we have
    to compare the first element again.
    
    I also renamed the find_evsel function to find_evsel_group to make its
    purpose clearer.
    
    With the earlier changes this fixes:
    
    Before:
    
      % perf stat -M UPI,IPC sleep 1
      ...
             1,032,922      uops_retired.retire_slots #      1.1 UPI
             1,896,096      inst_retired.any
             1,896,096      inst_retired.any
             1,177,254      cpu_clk_unhalted.thread
    
    After:
    
      % perf stat -M UPI,IPC sleep 1
      ...
            1,013,193      uops_retired.retire_slots #      1.1 UPI
               932,033      inst_retired.any
               932,033      inst_retired.any          #      0.9 IPC
             1,091,245      cpu_clk_unhalted.thread
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Fixes: b18f3e36 ("perf stat: Support JSON metrics in perf stat")
    Link: http://lkml.kernel.org/r/20190624193711.35241-4-andi@firstfloor.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    2f87f33f
metricgroup.c 11.4 KB