Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Leo Yan and committed by
Arnaldo Carvalho de Melo
e44e2b2b 45854b6d

+21
+14
tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c
··· 314 314 arm_spe_pkt_out_string(&err, &buf, &buf_len, " SVE-PARTIAL-PRED"); 315 315 if (payload & BIT(EV_EMPTY_PREDICATE)) 316 316 arm_spe_pkt_out_string(&err, &buf, &buf_len, " SVE-EMPTY-PRED"); 317 + if (payload & BIT(EV_L2D_ACCESS)) 318 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " L2D-ACCESS"); 319 + if (payload & BIT(EV_L2D_MISS)) 320 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " L2D-MISS"); 321 + if (payload & BIT(EV_CACHE_DATA_MODIFIED)) 322 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " HITM"); 323 + if (payload & BIT(EV_RECENTLY_FETCHED)) 324 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " LFB"); 325 + if (payload & BIT(EV_DATA_SNOOPED)) 326 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " SNOOPED"); 327 + if (payload & BIT(EV_STREAMING_SVE_MODE)) 328 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " STREAMING-SVE"); 329 + if (payload & BIT(EV_SMCU)) 330 + arm_spe_pkt_out_string(&err, &buf, &buf_len, " SMCU"); 317 331 318 332 return err; 319 333 }
+7
tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.h
··· 108 108 EV_TRANSACTIONAL = 16, 109 109 EV_PARTIAL_PREDICATE = 17, 110 110 EV_EMPTY_PREDICATE = 18, 111 + EV_L2D_ACCESS = 19, 112 + EV_L2D_MISS = 20, 113 + EV_CACHE_DATA_MODIFIED = 21, 114 + EV_RECENTLY_FETCHED = 22, 115 + EV_DATA_SNOOPED = 23, 116 + EV_STREAMING_SVE_MODE = 24, 117 + EV_SMCU = 25, 111 118 }; 112 119 113 120 /* Operation packet header */