[PATCH 5.15 131/276] perf arm-spe: augment the data source type with neoverse_spe list

Greg Kroah-Hartman gregkh at linuxfoundation.org
Fri Oct 17 07:53:44 PDT 2025


5.15-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jing Zhang <renyu.zj at linux.alibaba.com>

[ Upstream commit 74a61d53a6d1ca1172d85964d15c83c2cc3670b3 ]

When synthesizing event with SPE data source, commit 4e6430cbb1a9("perf
arm-spe: Use SPE data source for neoverse cores") augment the type with
source information by MIDR. However, is_midr_in_range only compares the
first entry in neoverse_spe.

Change is_midr_in_range to is_midr_in_range_list to traverse the
neoverse_spe array so that all neoverse cores synthesize event with data
source packet.

Fixes: 4e6430cbb1a9f1dc ("perf arm-spe: Use SPE data source for neoverse cores")
Reviewed-by: Ali Saidi <alisaidi at amazon.com>
Reviewed-by: Leo Yan <leo.yan at linaro.org>
Signed-off-by: Jing Zhang <renyu.zj at linux.alibaba.com>
Cc: Alexander Shishkin <alexander.shishkin at linux.intel.com>
Cc: Ali Saidi <alisaidi at amazon.com>
Cc: German Gomez <german.gomez at arm.com>
Cc: Ingo Molnar <mingo at redhat.com>
Cc: James Clark <james.clark at arm.com>
Cc: Jiri Olsa <jolsa at kernel.org>
Cc: John Garry <john.garry at huawei.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Mark Rutland <mark.rutland at arm.com>
Cc: Mike Leach <mike.leach at linaro.org>
Cc: Namhyung Kim <namhyung at kernel.org>
Cc: Peter Zijlstra <peterz at infradead.org>
Cc: Shuai Xue <xueshuai at linux.alibaba.com>
Cc: Timothy Hayes <timothy.hayes at arm.com>
Cc: Will Deacon <will at kernel.org>
Cc: Zhuo Song <zhuo.song at linux.alibaba.com>
Link: https://lore.kernel.org/r/1664197396-42672-1-git-send-email-renyu.zj@linux.alibaba.com
Signed-off-by: Arnaldo Carvalho de Melo <acme at redhat.com>
Stable-dep-of: cb300e351505 ("perf arm_spe: Correct memory level for remote access")
Signed-off-by: Sasha Levin <sashal at kernel.org>
---
 tools/perf/util/arm-spe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c
index 9e7e56596c60e..2d7fc2b01f36b 100644
--- a/tools/perf/util/arm-spe.c
+++ b/tools/perf/util/arm-spe.c
@@ -423,7 +423,7 @@ static void arm_spe__synth_data_source_generic(const struct arm_spe_record *reco
 static u64 arm_spe__synth_data_source(const struct arm_spe_record *record, u64 midr)
 {
 	union perf_mem_data_src	data_src = { 0 };
-	bool is_neoverse = is_midr_in_range(midr, neoverse_spe);
+	bool is_neoverse = is_midr_in_range_list(midr, neoverse_spe);
 
 	if (record->op == ARM_SPE_LD)
 		data_src.mem_op = PERF_MEM_OP_LOAD;
-- 
2.51.0






More information about the linux-arm-kernel mailing list