diff options
| author | Leo Yan <leo.yan@arm.com> | 2025-11-12 18:24:38 +0000 |
|---|---|---|
| committer | Namhyung Kim <namhyung@kernel.org> | 2025-11-18 20:31:29 -0800 |
| commit | f3b9bed72e37e5fa14184d8634a9c88117d1fcb1 (patch) | |
| tree | 70fd46b6d4889e21052d0b417a51f87edeffcf10 /tools/perf | |
| parent | c462dc70b1dc2b3fbb95d2cd2748185edc5ae30b (diff) | |
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 <leo.yan@arm.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 7 |
1 files changed, 7 insertions, 0 deletions
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 6696448bdf4f..949c20816826 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; } |
