* [PATCH] kselftest/arm64: Don't probe the current VL for unsupported vector types
@ 2023-12-18 23:39 Mark Brown
2023-12-19 11:18 ` Will Deacon
0 siblings, 1 reply; 2+ messages in thread
From: Mark Brown @ 2023-12-18 23:39 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Shuah Khan
Cc: linux-arm-kernel, linux-kselftest, linux-kernel, Mark Brown
The vec-syscfg selftest verifies that setting the VL of the currently
tested vector type does not disrupt the VL of the other vector type. To do
this it records the current vector length for each type but neglects to
guard this with a check for that vector type actually being supported. Add
one, using a helper function which we also update all the other instances
of this pattern.
Signed-off-by: Mark Brown <broonie@kernel.org>
---
tools/testing/selftests/arm64/fp/vec-syscfg.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/arm64/fp/vec-syscfg.c b/tools/testing/selftests/arm64/fp/vec-syscfg.c
index 5f648b97a06f..ea9c7d47790f 100644
--- a/tools/testing/selftests/arm64/fp/vec-syscfg.c
+++ b/tools/testing/selftests/arm64/fp/vec-syscfg.c
@@ -66,6 +66,11 @@ static struct vec_data vec_data[] = {
},
};
+static bool vec_type_supported(struct vec_data *data)
+{
+ return getauxval(data->hwcap_type) & data->hwcap;
+}
+
static int stdio_read_integer(FILE *f, const char *what, int *val)
{
int n = 0;
@@ -564,8 +569,11 @@ static void prctl_set_all_vqs(struct vec_data *data)
return;
}
- for (i = 0; i < ARRAY_SIZE(vec_data); i++)
+ for (i = 0; i < ARRAY_SIZE(vec_data); i++) {
+ if (!vec_type_supported(&vec_data[i]))
+ continue;
orig_vls[i] = vec_data[i].rdvl();
+ }
for (vq = SVE_VQ_MIN; vq <= SVE_VQ_MAX; vq++) {
vl = sve_vl_from_vq(vq);
@@ -594,7 +602,7 @@ static void prctl_set_all_vqs(struct vec_data *data)
if (&vec_data[i] == data)
continue;
- if (!(getauxval(vec_data[i].hwcap_type) & vec_data[i].hwcap))
+ if (!vec_type_supported(&vec_data[i]))
continue;
if (vec_data[i].rdvl() != orig_vls[i]) {
@@ -765,7 +773,7 @@ int main(void)
struct vec_data *data = &vec_data[i];
unsigned long supported;
- supported = getauxval(data->hwcap_type) & data->hwcap;
+ supported = vec_type_supported(data);
if (!supported)
all_supported = false;
---
base-commit: 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab
change-id: 20231215-kselftest-arm64-vec-syscfg-rdvl-7944e19ac64f
Best regards,
--
Mark Brown <broonie@kernel.org>
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] kselftest/arm64: Don't probe the current VL for unsupported vector types
2023-12-18 23:39 [PATCH] kselftest/arm64: Don't probe the current VL for unsupported vector types Mark Brown
@ 2023-12-19 11:18 ` Will Deacon
0 siblings, 0 replies; 2+ messages in thread
From: Will Deacon @ 2023-12-19 11:18 UTC (permalink / raw)
To: Catalin Marinas, Mark Brown, Shuah Khan
Cc: kernel-team, Will Deacon, linux-arm-kernel, linux-kselftest,
linux-kernel
On Mon, 18 Dec 2023 23:39:32 +0000, Mark Brown wrote:
> The vec-syscfg selftest verifies that setting the VL of the currently
> tested vector type does not disrupt the VL of the other vector type. To do
> this it records the current vector length for each type but neglects to
> guard this with a check for that vector type actually being supported. Add
> one, using a helper function which we also update all the other instances
> of this pattern.
>
> [...]
Applied to arm64 (for-next/selftests), thanks!
[1/1] kselftest/arm64: Don't probe the current VL for unsupported vector types
https://git.kernel.org/arm64/c/9a802ddb2123
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-12-19 11:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-18 23:39 [PATCH] kselftest/arm64: Don't probe the current VL for unsupported vector types Mark Brown
2023-12-19 11:18 ` Will Deacon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®