From: Leo Yan Date: Wed, 12 Nov 2025 18:24:38 +0000 (+0000) Subject: perf arm_spe: Report extended memory operations in records X-Git-Tag: v6.19-rc1~61^2~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3b9bed72e37e5fa14184d8634a9c88117d1fcb1;p=thirdparty%2Fkernel%2Flinux.git perf arm_spe: Report extended memory operations in records Extended memory operations include atomic (AT), acquire/release (AR), and exclusive (EXCL) operations. Save the relevant information in the records. Signed-off-by: Leo Yan Reviewed-by: Ian Rogers Reviewed-by: James Clark Signed-off-by: Namhyung Kim --- diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c index 6696448bdf4f3..949c20816826a 100644 --- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c +++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c @@ -211,6 +211,13 @@ static int arm_spe_read_record(struct arm_spe_decoder *decoder) decoder->record.op |= ARM_SPE_OP_NV_SYSREG; } else if (SPE_OP_PKT_LDST_SUBCLASS_MTE_TAG(payload)) { decoder->record.op |= ARM_SPE_OP_MTE_TAG; + } else if (SPE_OP_PKT_LDST_SUBCLASS_EXTENDED(payload)) { + if (payload & SPE_OP_PKT_AR) + decoder->record.op |= ARM_SPE_OP_AR; + if (payload & SPE_OP_PKT_EXCL) + decoder->record.op |= ARM_SPE_OP_EXCL; + if (payload & SPE_OP_PKT_AT) + decoder->record.op |= ARM_SPE_OP_ATOMIC; } else if (SPE_OP_PKT_LDST_SUBCLASS_SVE_SME_REG(payload)) { decoder->record.op |= ARM_SPE_OP_SVE; }