perf mem: Clean up is_mem_loads_aux_event()
authorKan Liang <kan.liang@linux.intel.com>
Tue, 23 Jan 2024 18:50:34 +0000 (10:50 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 24 Jan 2024 22:05:00 +0000 (14:05 -0800)
The aux_event can be retrieved from the perf_pmu now. Implement a
generic support.

Reviewed-by: Ian Rogers <irogers@google.com>
Tested-by: Ravi Bangoria <ravi.bangoria@amd.com>
Tested-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Cc: james.clark@arm.com
Cc: will@kernel.org
Cc: mike.leach@linaro.org
Cc: renyu.zj@linux.alibaba.com
Cc: yuhaixin.yhx@linux.alibaba.com
Cc: tmricht@linux.ibm.com
Cc: atrajeev@linux.vnet.ibm.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: john.g.garry@oracle.com
Link: https://lore.kernel.org/r/20240123185036.3461837-6-kan.liang@linux.intel.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/arch/x86/util/mem-events.c
tools/perf/util/mem-events.c

index b776d849fc64310127b5391be1ff7970a32a979e..62df03e91c7e1ce535089138476442b53f04ddbc 100644 (file)
@@ -1,11 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "util/pmu.h"
-#include "util/pmus.h"
-#include "util/env.h"
-#include "map_symbol.h"
-#include "mem-events.h"
 #include "linux/string.h"
-#include "env.h"
+#include "util/map_symbol.h"
+#include "util/mem-events.h"
+#include "mem-events.h"
+
 
 #define MEM_LOADS_AUX          0x8203
 
@@ -28,16 +26,3 @@ struct perf_mem_event perf_mem_events_amd[PERF_MEM_EVENTS__MAX] = {
        E(NULL,         NULL,           NULL,   false,  0),
        E("mem-ldst",   "%s//",         NULL,   false,  0),
 };
-
-bool is_mem_loads_aux_event(struct evsel *leader)
-{
-       struct perf_pmu *pmu = perf_pmus__find("cpu");
-
-       if (!pmu)
-               pmu = perf_pmus__find("cpu_core");
-
-       if (pmu && !perf_pmu__have_event(pmu, "mem-loads-aux"))
-               return false;
-
-       return leader->core.attr.config == MEM_LOADS_AUX;
-}
index 32890848bb3dfc4f682329695b3fdd19b34cb1a6..7d7df3d0b2b936f41746d17941594f613a9c7c2f 100644 (file)
@@ -107,9 +107,19 @@ static const char *perf_pmu__mem_events_name(int i, struct perf_pmu *pmu)
        return NULL;
 }
 
-__weak bool is_mem_loads_aux_event(struct evsel *leader __maybe_unused)
+bool is_mem_loads_aux_event(struct evsel *leader)
 {
-       return false;
+       struct perf_pmu *pmu = leader->pmu;
+       struct perf_mem_event *e;
+
+       if (!pmu || !pmu->mem_events)
+               return false;
+
+       e = &pmu->mem_events[PERF_MEM_EVENTS__LOAD];
+       if (!e->aux_event)
+               return false;
+
+       return leader->core.attr.config == e->aux_event;
 }
 
 int perf_pmu__mem_events_parse(struct perf_pmu *pmu, const char *str)