]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf sort: Support sort ASE and SME
authorLeo Yan <leo.yan@arm.com>
Fri, 10 Apr 2026 07:36:58 +0000 (08:36 +0100)
committerNamhyung Kim <namhyung@kernel.org>
Fri, 10 Apr 2026 16:52:06 +0000 (09:52 -0700)
Support sort Advance SIMD extension (ASE) and SME.

Reviewed-by: James Clark <james.clark@linaro.org>
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/sample.h
tools/perf/util/sort.c

index 3d27a0daef8fb2d72ffa8510923857e73130dd40..0e5ee7e0fb94f2d36c35df15de7c4ea00547a6c2 100644 (file)
@@ -71,12 +71,18 @@ struct aux_sample {
 };
 
 struct simd_flags {
-       u8      arch:1, /* architecture (isa) */
-               pred:2; /* predication */
+       u8      arch:  2,       /* architecture (isa) */
+               pred:  2,       /* predication */
+               resv:  4;       /* reserved */
 };
 
 /* simd architecture flags */
-#define SIMD_OP_FLAGS_ARCH_SVE         0x01    /* ARM SVE */
+enum simd_op_flags {
+       SIMD_OP_FLAGS_ARCH_NONE = 0x0,  /* No SIMD operation */
+       SIMD_OP_FLAGS_ARCH_SVE,         /* Arm SVE */
+       SIMD_OP_FLAGS_ARCH_SME,         /* Arm SME */
+       SIMD_OP_FLAGS_ARCH_ASE,         /* Arm Advanced SIMD */
+};
 
 /* simd predicate flags */
 #define SIMD_OP_FLAGS_PRED_PARTIAL     0x01    /* partial predicate */
index 6ce684d68bd61edba2df16806d8a8f18132617db..7198eb3ae560cdac762a7d233d19bd6c70903d39 100644 (file)
@@ -195,8 +195,12 @@ static const char *hist_entry__get_simd_name(struct simd_flags *simd_flags)
 {
        u64 arch = simd_flags->arch;
 
-       if (arch & SIMD_OP_FLAGS_ARCH_SVE)
+       if (arch == SIMD_OP_FLAGS_ARCH_SVE)
                return "SVE";
+       else if (arch == SIMD_OP_FLAGS_ARCH_SME)
+               return "SME";
+       else if (arch == SIMD_OP_FLAGS_ARCH_ASE)
+               return "ASE";
        else
                return "n/a";
 }