• Kan Liang's avatar
    perf evsel: Fix the annotation for hardware events on hybrid · e15e4a3d
    Kan Liang authored
    The annotation for hardware events is wrong on hybrid. For example,
    
     # ./perf stat -a sleep 1
    
     Performance counter stats for 'system wide':
    
             32,148.85 msec cpu-clock                        #   32.000 CPUs utilized
                   374      context-switches                 #   11.633 /sec
                    33      cpu-migrations                   #    1.026 /sec
                   295      page-faults                      #    9.176 /sec
            18,979,960      cpu_core/cycles/                 #  590.378 K/sec
           261,230,783      cpu_atom/cycles/                 #    8.126 M/sec                       (54.21%)
            17,019,732      cpu_core/instructions/           #  529.404 K/sec
            38,020,470      cpu_atom/instructions/           #    1.183 M/sec                       (63.36%)
             3,296,743      cpu_core/branches/               #  102.546 K/sec
             6,692,338      cpu_atom/branches/               #  208.167 K/sec                       (63.40%)
                96,421      cpu_core/branch-misses/          #    2.999 K/sec
             1,016,336      cpu_atom/branch-misses/          #   31.613 K/sec                       (63.38%)
    
    The hardware events have extended type on hybrid, but the evsel__match()
    doesn't take it into account.
    
    Filter the config on hybrid before checking.
    
    With the patch,
    
     # ./perf stat -a sleep 1
    
     Performance counter stats for 'system wide':
    
             32,139.90 msec cpu-clock                        #   32.003 CPUs utilized
                   343      context-switches                 #   10.672 /sec
                    32      cpu-migrations                   #    0.996 /sec
                    73      page-faults                      #    2.271 /sec
            13,712,841      cpu_core/cycles/                 #    0.000 GHz
           258,301,691      cpu_atom/cycles/                 #    0.008 GHz                         (54.20%)
            12,428,163      cpu_core/instructions/           #    0.91  insn per cycle
            37,786,557      cpu_atom/instructions/           #    2.76  insn per cycle              (63.35%)
             2,418,826      cpu_core/branches/               #   75.259 K/sec
             6,965,962      cpu_atom/branches/               #  216.739 K/sec                       (63.38%)
                72,150      cpu_core/branch-misses/          #    2.98% of all branches
             1,032,746      cpu_atom/branch-misses/          #   42.70% of all branches             (63.35%)
    Suggested-by: default avatarIan Rogers <irogers@google.com>
    Reviewed-by: default avatarIan Rogers <irogers@google.com>
    Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ahmad Yasin <ahmad.yasin@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: https://lore.kernel.org/r/20230615135315.3662428-2-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    e15e4a3d
evsel.h 16.9 KB