[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240123185036.3461837-6-kan.liang@linux.intel.com>
Date: Tue, 23 Jan 2024 10:50:34 -0800
From: kan.liang@...ux.intel.com
To: acme@...nel.org,
namhyung@...nel.org,
irogers@...gle.com,
peterz@...radead.org,
mingo@...hat.com,
jolsa@...nel.org,
adrian.hunter@...el.com,
john.g.garry@...cle.com,
will@...nel.org,
james.clark@....com,
mike.leach@...aro.org,
leo.yan@...aro.org,
yuhaixin.yhx@...ux.alibaba.com,
renyu.zj@...ux.alibaba.com,
tmricht@...ux.ibm.com,
ravi.bangoria@....com,
atrajeev@...ux.vnet.ibm.com,
linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Cc: Kan Liang <kan.liang@...ux.intel.com>
Subject: [PATCH V4 5/7] perf mem: Clean up is_mem_loads_aux_event()
From: Kan Liang <kan.liang@...ux.intel.com>
The aux_event can be retrieved from the perf_pmu now. Implement a
generic support.
Reviewed-by: Ian Rogers <irogers@...gle.com>
Tested-by: Ravi Bangoria <ravi.bangoria@....com>
Tested-by: Leo Yan <leo.yan@...aro.org>
Signed-off-by: Kan Liang <kan.liang@...ux.intel.com>
---
tools/perf/arch/x86/util/mem-events.c | 23 ++++-------------------
tools/perf/util/mem-events.c | 14 ++++++++++++--
2 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/tools/perf/arch/x86/util/mem-events.c b/tools/perf/arch/x86/util/mem-events.c
index b776d849fc64..62df03e91c7e 100644
--- a/tools/perf/arch/x86/util/mem-events.c
+++ b/tools/perf/arch/x86/util/mem-events.c
@@ -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;
-}
diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c
index 32890848bb3d..7d7df3d0b2b9 100644
--- a/tools/perf/util/mem-events.c
+++ b/tools/perf/util/mem-events.c
@@ -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)
--
2.35.1
Powered by blists - more mailing lists