[PATCH v11 33/40] kselftest/arm64: Extend vector configuration API tests to cover SME
Shuah Khan
skhan at linuxfoundation.org
Mon Feb 7 16:24:27 PST 2022
On 2/7/22 8:21 AM, Mark Brown wrote:
> Provide RDVL helpers for SME and extend the main vector configuration tests
> to cover SME.
>
> Signed-off-by: Mark Brown <broonie at kernel.org>
> ---
> tools/testing/selftests/arm64/fp/.gitignore | 1 +
> tools/testing/selftests/arm64/fp/Makefile | 3 ++-
> tools/testing/selftests/arm64/fp/rdvl-sme.c | 14 ++++++++++++++
> tools/testing/selftests/arm64/fp/rdvl.S | 10 ++++++++++
> tools/testing/selftests/arm64/fp/rdvl.h | 1 +
> tools/testing/selftests/arm64/fp/vec-syscfg.c | 10 ++++++++++
> 6 files changed, 38 insertions(+), 1 deletion(-)
> create mode 100644 tools/testing/selftests/arm64/fp/rdvl-sme.c
>
> diff --git a/tools/testing/selftests/arm64/fp/.gitignore b/tools/testing/selftests/arm64/fp/.gitignore
> index c50d86331ed2..6e9a610c5e5d 100644
> --- a/tools/testing/selftests/arm64/fp/.gitignore
> +++ b/tools/testing/selftests/arm64/fp/.gitignore
> @@ -1,5 +1,6 @@
> fp-pidbench
> fpsimd-test
> +rdvl-sme
> rdvl-sve
> sve-probe-vls
> sve-ptrace
> diff --git a/tools/testing/selftests/arm64/fp/Makefile b/tools/testing/selftests/arm64/fp/Makefile
> index 95f0b877a060..a224fff8082b 100644
> --- a/tools/testing/selftests/arm64/fp/Makefile
> +++ b/tools/testing/selftests/arm64/fp/Makefile
> @@ -3,7 +3,7 @@
> CFLAGS += -I../../../../../usr/include/
> TEST_GEN_PROGS := sve-ptrace sve-probe-vls vec-syscfg
> TEST_PROGS_EXTENDED := fp-pidbench fpsimd-test fpsimd-stress \
> - rdvl-sve \
> + rdvl-sme rdvl-sve \
> sve-test sve-stress \
> vlset
>
> @@ -13,6 +13,7 @@ fp-pidbench: fp-pidbench.S asm-utils.o
> $(CC) -nostdlib $^ -o $@
> fpsimd-test: fpsimd-test.o asm-utils.o
> $(CC) -nostdlib $^ -o $@
> +rdvl-sme: rdvl-sme.o rdvl.o
> rdvl-sve: rdvl-sve.o rdvl.o
> sve-ptrace: sve-ptrace.o
> sve-probe-vls: sve-probe-vls.o rdvl.o
> diff --git a/tools/testing/selftests/arm64/fp/rdvl-sme.c b/tools/testing/selftests/arm64/fp/rdvl-sme.c
> new file mode 100644
> index 000000000000..49b0b2e08bac
> --- /dev/null
> +++ b/tools/testing/selftests/arm64/fp/rdvl-sme.c
> @@ -0,0 +1,14 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +
> +#include <stdio.h>
> +
> +#include "rdvl.h"
> +
> +int main(void)
> +{
> + int vl = rdvl_sme();
> +
> + printf("%d\n", vl);
> +
> + return 0;
> +}
> diff --git a/tools/testing/selftests/arm64/fp/rdvl.S b/tools/testing/selftests/arm64/fp/rdvl.S
> index c916c1c9defd..20dc29996dc6 100644
> --- a/tools/testing/selftests/arm64/fp/rdvl.S
> +++ b/tools/testing/selftests/arm64/fp/rdvl.S
> @@ -1,6 +1,8 @@
> // SPDX-License-Identifier: GPL-2.0-only
> // Copyright (C) 2021 ARM Limited.
>
> +#include "sme-inst.h"
> +
> .arch_extension sve
>
> .globl rdvl_sve
> @@ -8,3 +10,11 @@ rdvl_sve:
> hint 34 // BTI C
> rdvl x0, #1
> ret
> +
> +.globl rdvl_sme
> +rdvl_sme:
> + hint 34 // BTI C
> +
> + rdsvl 0, 1
> +
> + ret
> diff --git a/tools/testing/selftests/arm64/fp/rdvl.h b/tools/testing/selftests/arm64/fp/rdvl.h
> index 7c9d953fc9e7..5d323679fbc9 100644
> --- a/tools/testing/selftests/arm64/fp/rdvl.h
> +++ b/tools/testing/selftests/arm64/fp/rdvl.h
> @@ -3,6 +3,7 @@
> #ifndef RDVL_H
> #define RDVL_H
>
> +int rdvl_sme(void);
> int rdvl_sve(void);
>
> #endif
> diff --git a/tools/testing/selftests/arm64/fp/vec-syscfg.c b/tools/testing/selftests/arm64/fp/vec-syscfg.c
> index c90658811a83..9bcfcdc34ee9 100644
> --- a/tools/testing/selftests/arm64/fp/vec-syscfg.c
> +++ b/tools/testing/selftests/arm64/fp/vec-syscfg.c
> @@ -51,6 +51,16 @@ static struct vec_data vec_data[] = {
> .prctl_set = PR_SVE_SET_VL,
> .default_vl_file = "/proc/sys/abi/sve_default_vector_length",
> },
> + {
> + .name = "SME",
> + .hwcap_type = AT_HWCAP2,
> + .hwcap = HWCAP2_SME,
> + .rdvl = rdvl_sme,
> + .rdvl_binary = "./rdvl-sme",
> + .prctl_get = PR_SME_GET_VL,
> + .prctl_set = PR_SME_SET_VL,
> + .default_vl_file = "/proc/sys/abi/sme_default_vector_length",
> + },
> };
>
> static int stdio_read_integer(FILE *f, const char *what, int *val)
>
Looks good to me.
Reviewed-by: Shuah Khan <skhan at linuxfoundation.org>
thanks,
-- Shuah
More information about the linux-arm-kernel
mailing list