perf arm_spe: Decode event types for new features

Decode new event types introduced by FEAT_SPEv1p4, FEAT_SPE_SME and
FEAT_SPE_SME.

The printed event names don't strictly follow the naming in the Arm ARM.
For example, the "Cache data modified" event is shown as "HITM", and the
"Data snooped" event is printed as "SNOOPED". Shorter names are easier
to read while preserving core meanings.

Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Leo Yan <leo.yan@arm.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ali Saidi <alisaidi@amazon.com>
Cc: German Gomez <german.gomez@arm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Leo Yan 2025-09-12 16:42:12 +01:00 committed by Arnaldo Carvalho de Melo
parent 45854b6d77
commit e44e2b2b16
2 changed files with 21 additions and 0 deletions

View File

@ -314,6 +314,20 @@ static int arm_spe_pkt_desc_event(const struct arm_spe_pkt *packet,
arm_spe_pkt_out_string(&err, &buf, &buf_len, " SVE-PARTIAL-PRED");
if (payload & BIT(EV_EMPTY_PREDICATE))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " SVE-EMPTY-PRED");
if (payload & BIT(EV_L2D_ACCESS))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " L2D-ACCESS");
if (payload & BIT(EV_L2D_MISS))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " L2D-MISS");
if (payload & BIT(EV_CACHE_DATA_MODIFIED))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " HITM");
if (payload & BIT(EV_RECENTLY_FETCHED))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " LFB");
if (payload & BIT(EV_DATA_SNOOPED))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " SNOOPED");
if (payload & BIT(EV_STREAMING_SVE_MODE))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " STREAMING-SVE");
if (payload & BIT(EV_SMCU))
arm_spe_pkt_out_string(&err, &buf, &buf_len, " SMCU");
return err;
}

View File

@ -108,6 +108,13 @@ enum arm_spe_events {
EV_TRANSACTIONAL = 16,
EV_PARTIAL_PREDICATE = 17,
EV_EMPTY_PREDICATE = 18,
EV_L2D_ACCESS = 19,
EV_L2D_MISS = 20,
EV_CACHE_DATA_MODIFIED = 21,
EV_RECENTLY_FETCHED = 22,
EV_DATA_SNOOPED = 23,
EV_STREAMING_SVE_MODE = 24,
EV_SMCU = 25,
};
/* Operation packet header */