• Dave Martin's avatar
    arm64/sve: Add sysctl to set the default vector length for new processes · 4ffa09a9
    Dave Martin authored
    Because of the effect of SVE on the size of the signal frame, the
    default vector length used for new processes involves a tradeoff
    between performance of SVE-enabled software on the one hand, and
    reliability of non-SVE-aware software on the other hand.
    
    For this reason, the best choice depends on the repertoire of
    userspace software in use and is thus best left up to distro
    maintainers, sysadmins and developers.
    
    If CONFIG_SYSCTL and CONFIG_PROC_SYSCTL are enabled, this patch
    exposes the default vector length in
    /proc/sys/abi/sve_default_vector_length, where boot scripts or the
    adventurous can poke it.
    
    In common with other arm64 ABI sysctls, this control is currently
    global: setting it requires CAP_SYS_ADMIN in the root user
    namespace, but the value set is effective for subsequent execs in
    all namespaces.  The control only affects _new_ processes, however:
    changing it does not affect the vector length of any existing
    process.
    
    The intended usage model is that if userspace is known to be fully
    SVE-tolerant (or a developer is curious to find out) then this
    parameter can be cranked up during system startup.
    Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
    Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    4ffa09a9
fpsimd.c 33.7 KB