[PATCH] kselftest/arm64: Actually test SME vector length changes via sigreturn

Mark Brown posted 1 patch 1 year, 5 months ago
.../arm64/signal/testcases/fake_sigreturn_sme_change_vl.c  | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
[PATCH] kselftest/arm64: Actually test SME vector length changes via sigreturn
Posted by Mark Brown 1 year, 5 months ago
The test case for SME vector length changes via sigreturn use a bit too
much cut'n'paste and only actually changed the SVE vector length in the
test itself. Andre's recent factoring out of the initialisation code caused
this to be exposed and the test to start failing. Fix the test to actually
cover the thing it's supposed to test.

Fixes: 4963aeb35a9e ("kselftest/arm64: signal: Add SME signal handling tests")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 .../arm64/signal/testcases/fake_sigreturn_sme_change_vl.c  | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c b/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
index cb8c051b5c8f..dfd6a2badf9f 100644
--- a/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
+++ b/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
@@ -35,30 +35,30 @@ static int fake_sigreturn_ssve_change_vl(struct tdescr *td,
 {
 	size_t resv_sz, offset;
 	struct _aarch64_ctx *head = GET_SF_RESV_HEAD(sf);
-	struct sve_context *sve;
+	struct za_context *za;
 
 	/* Get a signal context with a SME ZA frame in it */
 	if (!get_current_context(td, &sf.uc, sizeof(sf.uc)))
 		return 1;
 
 	resv_sz = GET_SF_RESV_SIZE(sf);
-	head = get_header(head, SVE_MAGIC, resv_sz, &offset);
+	head = get_header(head, ZA_MAGIC, resv_sz, &offset);
 	if (!head) {
-		fprintf(stderr, "No SVE context\n");
+		fprintf(stderr, "No ZA context\n");
 		return 1;
 	}
 
-	if (head->size != sizeof(struct sve_context)) {
+	if (head->size != sizeof(struct za_context)) {
 		fprintf(stderr, "Register data present, aborting\n");
 		return 1;
 	}
 
-	sve = (struct sve_context *)head;
+	za = (struct za_context *)head;
 
 	/* No changes are supported; init left us at minimum VL so go to max */
 	fprintf(stderr, "Attempting to change VL from %d to %d\n",
-		sve->vl, vls[0]);
-	sve->vl = vls[0];
+		za->vl, vls[0]);
+	za->vl = vls[0];
 
 	fake_sigreturn(&sf, sizeof(sf), 0);
 

---
base-commit: b18bbfc14a38b5234e09c2adcf713e38063a7e6e
change-id: 20240829-arm64-sme-signal-vl-change-test-cebe4035856a

Best regards,
-- 
Mark Brown <broonie@kernel.org>
Re: [PATCH] kselftest/arm64: Actually test SME vector length changes via sigreturn
Posted by Will Deacon 1 year, 5 months ago
On Thu, 29 Aug 2024 18:20:09 +0100, Mark Brown wrote:
> The test case for SME vector length changes via sigreturn use a bit too
> much cut'n'paste and only actually changed the SVE vector length in the
> test itself. Andre's recent factoring out of the initialisation code caused
> this to be exposed and the test to start failing. Fix the test to actually
> cover the thing it's supposed to test.
> 
> 
> [...]

Applied to arm64 (for-next/selftests), thanks!

[1/1] kselftest/arm64: Actually test SME vector length changes via sigreturn
      https://git.kernel.org/arm64/c/6f0315330af7

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
Re: [PATCH] kselftest/arm64: Actually test SME vector length changes via sigreturn
Posted by Andre Przywara 1 year, 5 months ago
Hi,

On 29/08/2024 18:20, Mark Brown wrote:
> The test case for SME vector length changes via sigreturn use a bit too
> much cut'n'paste and only actually changed the SVE vector length in the
> test itself. Andre's recent factoring out of the initialisation code caused
> this to be exposed and the test to start failing. Fix the test to actually
> cover the thing it's supposed to test.

Yes, I came to the same conclusion. The device I tested the original 
patch on only had one VL, so the whole test was skipped, and I didn't 
see the problem. Now re-tested on the FVP.

> Fixes: 4963aeb35a9e ("kselftest/arm64: signal: Add SME signal handling tests")
> Signed-off-by: Mark Brown <broonie@kernel.org>

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>

Thanks,
Andre.

> ---
>   .../arm64/signal/testcases/fake_sigreturn_sme_change_vl.c  | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c b/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
> index cb8c051b5c8f..dfd6a2badf9f 100644
> --- a/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
> +++ b/tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
> @@ -35,30 +35,30 @@ static int fake_sigreturn_ssve_change_vl(struct tdescr *td,
>   {
>   	size_t resv_sz, offset;
>   	struct _aarch64_ctx *head = GET_SF_RESV_HEAD(sf);
> -	struct sve_context *sve;
> +	struct za_context *za;
>   
>   	/* Get a signal context with a SME ZA frame in it */
>   	if (!get_current_context(td, &sf.uc, sizeof(sf.uc)))
>   		return 1;
>   
>   	resv_sz = GET_SF_RESV_SIZE(sf);
> -	head = get_header(head, SVE_MAGIC, resv_sz, &offset);
> +	head = get_header(head, ZA_MAGIC, resv_sz, &offset);
>   	if (!head) {
> -		fprintf(stderr, "No SVE context\n");
> +		fprintf(stderr, "No ZA context\n");
>   		return 1;
>   	}
>   
> -	if (head->size != sizeof(struct sve_context)) {
> +	if (head->size != sizeof(struct za_context)) {
>   		fprintf(stderr, "Register data present, aborting\n");
>   		return 1;
>   	}
>   
> -	sve = (struct sve_context *)head;
> +	za = (struct za_context *)head;
>   
>   	/* No changes are supported; init left us at minimum VL so go to max */
>   	fprintf(stderr, "Attempting to change VL from %d to %d\n",
> -		sve->vl, vls[0]);
> -	sve->vl = vls[0];
> +		za->vl, vls[0]);
> +	za->vl = vls[0];
>   
>   	fake_sigreturn(&sf, sizeof(sf), 0);
>   
> 
> ---
> base-commit: b18bbfc14a38b5234e09c2adcf713e38063a7e6e
> change-id: 20240829-arm64-sme-signal-vl-change-test-cebe4035856a
> 
> Best regards,