[PATCH 22/25] perf sort: Support sort ASE and SME

James Clark james.clark at linaro.org
Thu Oct 9 03:05:15 PDT 2025



On 29/09/2025 5:37 pm, Leo Yan wrote:
> Support sort Advance SIMD extension (ASE) and SME.
> 
> Signed-off-by: Leo Yan <leo.yan at arm.com>
> ---
>   tools/perf/util/sample.h | 9 ++++++---
>   tools/perf/util/sort.c   | 4 ++++
>   2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/util/sample.h b/tools/perf/util/sample.h
> index fae834144ef42105d08a59704ee75cd4852bbc5a..405876885e1f273c039cb67187c6e5c39c91a612 100644
> --- a/tools/perf/util/sample.h
> +++ b/tools/perf/util/sample.h
> @@ -67,12 +67,15 @@ struct aux_sample {
>   };
>   
>   struct simd_flags {
> -	u8	arch:1,	/* architecture (isa) */
> -		pred:2;	/* predication */
> +	u8	arch:  3,	/* architecture (isa) */
> +		pred:  2,	/* predication */
> +		resv:  3;	/* reserved */
>   };
>   
>   /* simd architecture flags */
> -#define SIMD_OP_FLAGS_ARCH_SVE		0x01	/* ARM SVE */
> +#define SIMD_OP_FLAGS_ARCH_SVE		0x01	/* Arm SVE */
> +#define SIMD_OP_FLAGS_ARCH_SME		0x02	/* Arm SME */
> +#define SIMD_OP_FLAGS_ARCH_ASE		0x04	/* Arm Advanced SIMD */

Same comment as the UAPI change. These are exclusive so it can be an 
enum rather than separate bits.

>   
>   /* simd predicate flags */
>   #define SIMD_OP_FLAGS_PRED_PARTIAL	0x01	/* partial predicate */
> diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> index f3a565b0e2307a8adf159725f803df5fef0dff83..c7596e9ca089c170988dbc43a00f6973039261cd 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -195,6 +195,10 @@ static const char *hist_entry__get_simd_name(struct simd_flags *simd_flags)
>   
>   	if (arch & SIMD_OP_FLAGS_ARCH_SVE)
>   		return "SVE";
> +	if (arch & SIMD_OP_FLAGS_ARCH_SME)
> +		return "SME";
> +	if (arch & SIMD_OP_FLAGS_ARCH_ASE)
> +		return "ASE";
>   	else
>   		return "n/a";
>   }
> 




More information about the linux-arm-kernel mailing list