From d2f327acc638312a96d0c0a20c56c7db945d30d7 Mon Sep 17 00:00:00 2001 From: Jin Yao Date: Thu, 27 May 2021 08:16:04 +0800 Subject: perf tools: Support pmu prefix for mem-load event The perf_mem_events__name() can generate the mem-load event name. It uses a variable 'mem_loads_name__init' to avoid generating the event name every time (because perf_pmu__scan takes some time). The perf_mem_events__name() assumes the pmu is "cpu" but it's not correct for hybrid platform. For Alderlake, the pmu is "cpu_core" or "cpu_atom" Introduce a new parameter 'pmu_name' in perf_mem_events__name to let the caller specify a pmu name. Considering such event name is x86 specific, so move perf_mem_events[] to arch/x86/util/mem-events.c. We still keep the variable 'mem_loads_name__init' but it's only used when pmu_name is NULL (compatible for original behavior). When pmu_name is not NULL (e.g. "cpu_core"), this patch doesn't have optimization. That can be implemented in follow up patch. Signed-off-by: Jin Yao Acked-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Ingo Molnar Cc: Kan Liang Cc: Peter Zijlstra Link: https://lore.kernel.org/r/20210527001610.10553-3-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/builtin-mem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tools/perf/builtin-mem.c') diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c index cdd2b9f643f6..03795bf49d51 100644 --- a/tools/perf/builtin-mem.c +++ b/tools/perf/builtin-mem.c @@ -135,13 +135,13 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem) if (!e->supported) { pr_err("failed: event '%s' not supported\n", - perf_mem_events__name(j)); + perf_mem_events__name(j, NULL)); free(rec_argv); return -1; } rec_argv[i++] = "-e"; - rec_argv[i++] = perf_mem_events__name(j); + rec_argv[i++] = perf_mem_events__name(j, NULL); } if (all_user) -- cgit v1.2.3