]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf arm_spe: Report GCS in record
authorLeo Yan <leo.yan@arm.com>
Wed, 12 Nov 2025 18:24:41 +0000 (18:24 +0000)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 19 Nov 2025 04:31:30 +0000 (20:31 -0800)
Report GCS related info in 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>
tools/perf/util/arm-spe-decoder/arm-spe-decoder.c
tools/perf/util/arm-spe-decoder/arm-spe-decoder.h

index 6f0390d4089599cd6bbf1357fa4cd6ec8190a58c..649471abef6a4386e1b250a19cda4f4caeb0a2ff 100644 (file)
@@ -228,6 +228,10 @@ static int arm_spe_read_record(struct arm_spe_decoder *decoder)
                                        decoder->record.op |= ARM_SPE_OP_MEMCPY;
                                } else if (SPE_OP_PKT_LDST_SUBCLASS_MEMSET(payload)) {
                                        decoder->record.op |= ARM_SPE_OP_MEMSET;
+                               } else if (SPE_OP_PKT_LDST_SUBCLASS_GCS(payload)) {
+                                       decoder->record.op |= ARM_SPE_OP_GCS;
+                                       if (payload & SPE_OP_PKT_GCS_COMM)
+                                               decoder->record.op |= ARM_SPE_OP_COMM;
                                }
 
                                break;
index 3f4dae589c062d927d286b73ce53fa39795daffd..b838e9c6168c6b7c20bb63b8e7c9d27c35f416dc 100644 (file)
@@ -47,6 +47,7 @@ enum arm_spe_2nd_op_ldst {
        ARM_SPE_OP_MTE_TAG              = 1 << 13,
        ARM_SPE_OP_MEMCPY               = 1 << 14,
        ARM_SPE_OP_MEMSET               = 1 << 15,
+       ARM_SPE_OP_GCS                  = 1 << 16,
 
        /* Assisted information for memory / SIMD */
        ARM_SPE_OP_LD                   = 1 << 20,
@@ -57,6 +58,7 @@ enum arm_spe_2nd_op_ldst {
        ARM_SPE_OP_DP                   = 1 << 25,      /* Data processing */
        ARM_SPE_OP_PRED                 = 1 << 26,      /* Predicated */
        ARM_SPE_OP_SG                   = 1 << 27,      /* Gather/Scatter */
+       ARM_SPE_OP_COMM                 = 1 << 28,      /* Common */
 };
 
 enum arm_spe_2nd_op_branch {