| PR_SVE_SET_VL(2const) | PR_SVE_SET_VL(2const) |
PR_SVE_SET_VL - set the thread's SVE vector length
Standard C library (libc, -lc)
#include <linux/prctl.h> /* Definition of PR_* constants */ #include <sys/prctl.h>
int prctl(PR_SVE_SET_VL, unsigned long val);
Configure the thread's SVE vector length, as specified by val.
The bits of val corresponding to PR_SVE_VL_LEN_MASK must be set to the desired vector length in bytes. This is interpreted as an upper bound: the kernel will select the greatest available vector length that does not exceed the value specified. In particular, specifying SVE_VL_MAX (defined in <asm/sigcontext.h>) for the PR_SVE_VL_LEN_MASK bits requests the maximum supported vector length.
In addition, the other bits of val must be set to one of the following combinations of flags:
In all cases, any previously pending deferred change is canceled.
On success, a nonnegative value is returned that describes the selected configuration. If PR_SVE_SET_VL_ONEXEC was included in val, then the configuration described by the return value will take effect at the next execve(2). Otherwise, the configuration is already in effect when the PR_SVE_SET_VL call returns. In either case, the value is encoded in the same way as the return value of PR_SVE_GET_VL. Note that there is no explicit flag in the return value corresponding to PR_SVE_SET_VL_ONEXEC.
The configuration (including any pending deferred change) is inherited across fork(2) and clone(2).
On success, PR_SVE_SET_VL returns the nonnegative value described above. On error, -1 is returned, and errno is set to indicate the error.
Linux. arm64 only.
Linux 4.15 (arm64).
Because the compiler or run-time environment may be using SVE, using this call without the PR_SVE_SET_VL_ONEXEC flag may crash the calling process. The conditions for using it safely are complex and system-dependent. Don't use it unless you really know what you are doing.
prctl(2), PR_SVE_GET_VL(2const)
For more information, see the kernel source file Documentation/arm64/sve.rst (or Documentation/arm64/sve.txt before Linux 5.3).
| 2024-06-02 | Linux man-pages 6.9.1 |