• Kan Liang's avatar
    perf mem: Fix missed p-core mem events on ADL and RPL · 5ad7db2c
    Kan Liang authored
    The p-core mem events are missed when launching 'perf mem record' on ADL
    and RPL.
    
      root@number:~# perf mem record sleep 1
      Memory events are enabled on a subset of CPUs: 16-27
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.032 MB perf.data ]
      root@number:~# perf evlist
      cpu_atom/mem-loads,ldlat=30/P
      cpu_atom/mem-stores/P
      dummy:u
    
    A variable 'record' in the 'struct perf_mem_event' is to indicate
    whether a mem event in a mem_events[] should be recorded. The current
    code only configure the variable for the first eligible PMU.
    
    It's good enough for a non-hybrid machine or a hybrid machine which has
    the same mem_events[].
    
    However, if a different mem_events[] is used for different PMUs on a
    hybrid machine, e.g., ADL or RPL, the 'record' for the second PMU never
    get a chance to be set.
    
    The mem_events[] of the second PMU are always ignored.
    
    'perf mem' doesn't support the per-PMU configuration now. A per-PMU
    mem_events[] 'record' variable doesn't make sense. Make it global.
    
    That could also avoid searching for the per-PMU mem_events[] via
    perf_pmu__mem_events_ptr every time.
    
    Committer testing:
    
      root@number:~# perf evlist -g
      cpu_atom/mem-loads,ldlat=30/P
      cpu_atom/mem-stores/P
      {cpu_core/mem-loads-aux/,cpu_core/mem-loads,ldlat=30/}
      cpu_core/mem-stores/P
      dummy:u
      root@number:~#
    
    The :S for '{cpu_core/mem-loads-aux/,cpu_core/mem-loads,ldlat=30/}' is
    not being added by 'perf evlist -g', to be checked.
    
    Fixes: abbdd79b ("perf mem: Clean up perf_mem_events__name()")
    Reported-by: default avatarArnaldo Carvalho de Melo <acme@kernel.org>
    Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Closes: https://lore.kernel.org/lkml/Zthu81fA3kLC2CS2@x1/
    Link: https://lore.kernel.org/r/20240905170737.4070743-2-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    5ad7db2c
mem-events.c 16.9 KB