diff mbox series

[v2,2/4] kselftest/arm64: Validate vector lengths are set in sve-probe-vls

Message ID 20210728163318.51492-3-broonie@kernel.org
State Superseded
Headers show
Series kselftest/arm64: Vector length configuration tests | expand

Commit Message

Mark Brown July 28, 2021, 4:33 p.m. UTC
Currently sve-probe-vls does not verify that the vector lengths reported
by the prctl() interface are actually what is reported by the architecture,
use the rdvl_sve() helper to validate this.

Signed-off-by: Mark Brown <broonie@kernel.org>

---
 tools/testing/selftests/arm64/fp/Makefile        | 2 +-
 tools/testing/selftests/arm64/fp/sve-probe-vls.c | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

-- 
2.20.1

Comments

Dave Martin July 29, 2021, 9:52 a.m. UTC | #1
On Wed, Jul 28, 2021 at 05:33:16PM +0100, Mark Brown wrote:
> Currently sve-probe-vls does not verify that the vector lengths reported

> by the prctl() interface are actually what is reported by the architecture,

> use the rdvl_sve() helper to validate this.

> 

> Signed-off-by: Mark Brown <broonie@kernel.org>


Reviewed-by: Dave Martin <Dave.Martin@arm.com>


> ---

>  tools/testing/selftests/arm64/fp/Makefile        | 2 +-

>  tools/testing/selftests/arm64/fp/sve-probe-vls.c | 5 +++++

>  2 files changed, 6 insertions(+), 1 deletion(-)

> 

> diff --git a/tools/testing/selftests/arm64/fp/Makefile b/tools/testing/selftests/arm64/fp/Makefile

> index ed62e7003b96..fa3a0167db2d 100644

> --- a/tools/testing/selftests/arm64/fp/Makefile

> +++ b/tools/testing/selftests/arm64/fp/Makefile

> @@ -13,7 +13,7 @@ fpsimd-test: fpsimd-test.o

>  	$(CC) -nostdlib $^ -o $@

>  rdvl-sve: rdvl-sve.o rdvl.o

>  sve-ptrace: sve-ptrace.o sve-ptrace-asm.o

> -sve-probe-vls: sve-probe-vls.o

> +sve-probe-vls: sve-probe-vls.o rdvl.o

>  sve-test: sve-test.o

>  	$(CC) -nostdlib $^ -o $@

>  vlset: vlset.o

> diff --git a/tools/testing/selftests/arm64/fp/sve-probe-vls.c b/tools/testing/selftests/arm64/fp/sve-probe-vls.c

> index 76e138525d55..a24eca7a4ecb 100644

> --- a/tools/testing/selftests/arm64/fp/sve-probe-vls.c

> +++ b/tools/testing/selftests/arm64/fp/sve-probe-vls.c

> @@ -13,6 +13,7 @@

>  #include <asm/sigcontext.h>

>  

>  #include "../../kselftest.h"

> +#include "rdvl.h"

>  

>  int main(int argc, char **argv)

>  {

> @@ -38,6 +39,10 @@ int main(int argc, char **argv)

>  

>  		vl &= PR_SVE_VL_LEN_MASK;

>  

> +		if (rdvl_sve() != vl)

> +			ksft_exit_fail_msg("PR_SVE_SET_VL reports %d, RDVL %d\n",

> +					   vl, rdvl_sve());

> +

>  		if (!sve_vl_valid(vl))

>  			ksft_exit_fail_msg("VL %d invalid\n", vl);

>  		vq = sve_vq_from_vl(vl);

> -- 

> 2.20.1

> 

> 

> _______________________________________________

> linux-arm-kernel mailing list

> linux-arm-kernel@lists.infradead.org

> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff mbox series

Patch

diff --git a/tools/testing/selftests/arm64/fp/Makefile b/tools/testing/selftests/arm64/fp/Makefile
index ed62e7003b96..fa3a0167db2d 100644
--- a/tools/testing/selftests/arm64/fp/Makefile
+++ b/tools/testing/selftests/arm64/fp/Makefile
@@ -13,7 +13,7 @@  fpsimd-test: fpsimd-test.o
 	$(CC) -nostdlib $^ -o $@
 rdvl-sve: rdvl-sve.o rdvl.o
 sve-ptrace: sve-ptrace.o sve-ptrace-asm.o
-sve-probe-vls: sve-probe-vls.o
+sve-probe-vls: sve-probe-vls.o rdvl.o
 sve-test: sve-test.o
 	$(CC) -nostdlib $^ -o $@
 vlset: vlset.o
diff --git a/tools/testing/selftests/arm64/fp/sve-probe-vls.c b/tools/testing/selftests/arm64/fp/sve-probe-vls.c
index 76e138525d55..a24eca7a4ecb 100644
--- a/tools/testing/selftests/arm64/fp/sve-probe-vls.c
+++ b/tools/testing/selftests/arm64/fp/sve-probe-vls.c
@@ -13,6 +13,7 @@ 
 #include <asm/sigcontext.h>
 
 #include "../../kselftest.h"
+#include "rdvl.h"
 
 int main(int argc, char **argv)
 {
@@ -38,6 +39,10 @@  int main(int argc, char **argv)
 
 		vl &= PR_SVE_VL_LEN_MASK;
 
+		if (rdvl_sve() != vl)
+			ksft_exit_fail_msg("PR_SVE_SET_VL reports %d, RDVL %d\n",
+					   vl, rdvl_sve());
+
 		if (!sve_vl_valid(vl))
 			ksft_exit_fail_msg("VL %d invalid\n", vl);
 		vq = sve_vq_from_vl(vl);