[RFC,10/10] Revert "arm64/sve: Limit vector length to 512 bits by default"
Commit Message
This reverts commit cdedb254ccddd9c6a8db91b3737690327e48dfe7.
Vector length limiting via Kconfig is no longer required now that
the default vector length can be manipulated at runtime via procfs.
---
arch/arm64/Kconfig | 35 -----------------------------------
arch/arm64/mm/proc.S | 5 -----
2 files changed, 40 deletions(-)
@@ -900,41 +900,6 @@ config ARM64_SVE
To enable use of this extension on CPUs that implement it, say Y.
-if ARM64_SVE
-
-config ARM64_SVE_FULL_VECTOR_LENGTH
- bool "Enable full hardware vector length for userspace"
- default n
- help
- SVE vector lengths greater than 512 bits impact the size of signal
- frames and therefore the size requirements for any userspace stack
- onto which a signal may be delivered. Using larger vector lengths
- may therefore cause problems for some software. For this reason, the
- kernel currently limits the maximum vector length for userspace
- software to 512 bits by default.
-
- Enabling this option removes the limit, so that the full vector
- length implemented by the hardware is made available to userspace.
-
- Be aware: in general, software that (a) does not use SVE (including
- via libraries), or (b) does not handle signals, or (c) uses default
- process/thread stack sizes and does not use sigaltstack(2) should be
- unaffected by enabling larger vectors. Software that does not meet
- these criteria or that relies on certain legacy uses of the ucontext
- API may be affected however.
-
- This is a transitional compatibility option only and will be replaced
- by a userspace ABI extension in the future. Do not assume that this
- option will be available with compatible effect in future Linux
- releases.
-
- If you are developing software that uses SVE and understand the
- implications, you can consider saying Y here.
-
- If unsure, say N.
-
-endif
-
config ARM64_MODULE_CMODEL_LARGE
bool
@@ -200,11 +200,6 @@ ENTRY(__cpu_setup)
mrs_s x5, ZIDR_EL1 // SVE: Enable full vector len
and x5, x5, #ZCR_EL1_LEN_MASK // initially
-#ifndef CONFIG_ARM64_SVE_FULL_VECTOR_LENGTH
- mov x6, #(512 / 128 - 1) // Clamp VL to 512 bits
- cmp x5, x6
- csel x5, x5, x6, lo
-#endif
msr_s ZCR_EL1, x5
b 2f