mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 23:04:17 +08:00
kselftest/arm64: Skip non-power of 2 SVE vector lengths in fp-stress
As documented in issue C215 in the known issues list for DDI0487I.a [1] Arm will be making a retroactive change to SVE to remove the possibility of selecting non power of two vector lengths. This has no impact on existing physical implementations but most virtual implementations have implemented the full range of permissible vector lengths. Given how demanding fp-stress is for these implementations update to only attempt to enumerate the power of two vector lengths, reducing the load created on existing virtual implementations and only exercising the functionality that will be seen in physical implementations. [1] https://developer.arm.com/documentation/102105/ia-00/ Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20221220-arm64-fp-stress-pow2-v1-1-d0ce756b57af@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
10f326fbb4
commit
67f4986910
@ -377,7 +377,7 @@ static void probe_vls(int vls[], int *vl_count, int set_vl)
|
||||
|
||||
*vl_count = 0;
|
||||
|
||||
for (vq = SVE_VQ_MAX; vq > 0; --vq) {
|
||||
for (vq = SVE_VQ_MAX; vq > 0; vq /= 2) {
|
||||
vl = prctl(set_vl, vq * 16);
|
||||
if (vl == -1)
|
||||
ksft_exit_fail_msg("SET_VL failed: %s (%d)\n",
|
||||
@ -385,6 +385,9 @@ static void probe_vls(int vls[], int *vl_count, int set_vl)
|
||||
|
||||
vl &= PR_SVE_VL_LEN_MASK;
|
||||
|
||||
if (*vl_count && (vl == vls[*vl_count - 1]))
|
||||
break;
|
||||
|
||||
vq = sve_vq_from_vl(vl);
|
||||
|
||||
vls[*vl_count] = vl;
|
||||
|
Loading…
Reference in New Issue
Block a user