From: Dave Martin <Dave.Martin@arm.com> To: mtk.manpages@gmail.com Cc: linux-man@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org> Subject: [PATCH 13/14] prctl.2: Add SVE prctls (arm64) Date: Tue, 12 May 2020 17:36:58 +0100 [thread overview] Message-ID: <1589301419-24459-14-git-send-email-Dave.Martin@arm.com> (raw) In-Reply-To: <1589301419-24459-1-git-send-email-Dave.Martin@arm.com> Add documentation for the the PR_SVE_SET_VL and PR_SVE_GET_VL prctls added in Linux 4.15 for arm64. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> --- I wrote the SVE support originally, so I probably have this one halfway right. The explantion added is not exhaustive, but I didn't want it to be too verbose. I may trim it a bit and move the detail to a dedicated page later on, but this is better than nothing in the meantime. --- man2/prctl.2 | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/man2/prctl.2 b/man2/prctl.2 index 7f511d2..dd16227 100644 --- a/man2/prctl.2 +++ b/man2/prctl.2 @@ -1291,6 +1291,104 @@ call failing with the error .BR ENXIO . For further details, see the kernel source file .IR Documentation/admin-guide/kernel-parameters.txt . +.\" prctl PR_SVE_SET_VL +.\" commit 2d2123bc7c7f843aa9db87720de159a049839862 +.\" linux-5.6/Documentation/arm64/sve.rst +.TP +.BR PR_SVE_SET_VL " (since Linux 4.15, only on arm64)" +Configure the thread's SVE vector length, +as specified by +.IR arg2 . +Arguments +.IR arg3 ", " arg4 " and " arg5 +are ignored. +.IP +The bits of +.I arg2 +corresponding to +.B SVE_VL_LEN_MASK +must be set to the desired vector length in bytes. +In addition, +.I arg2 +may include zero or more of the following flags: +.RS +.TP +.B PR_SVE_VL_INHERIT +Inherit the configured vector length across +.BR execve (2). +.TP +.B PR_SVE_SET_VL_ONEXEC +Defer the change until the next +.BR execve (2) +in this thread. +If +.B PR_SVE_VL_INHERIT +is also included in +.IR arg2 , +it takes effect +.I after +this deferred change. +.RE +.IP +On success, the vector length and flags are set as requested, +and any deferred change that was pending immediately before the +.B PR_SVE_SET_VL +call is canceled. +If +.B PR_SVE_SET_VL_ONEXEC +was included in +.IR arg2 , +the returned value describes the configuration +scheduled to take effect at the next +.BR execve (2). +Otherwise, the effect is immediate and +the returned value describes the new configuration. +The returned value is encoded in the same way as the return value of +.BR PR_SVE_GET_VL . +.IP +If neither of the above flags is included in +.IR arg2 , +a subsequent +.BR execve (2) +resets the vector length to the default value configured in +.IR /proc/sys/abi/sve_default_vector_length . +.IP +The actual vector length configured by this operation +is the greatest vector length supported by the platform +that does not exceed +.I arg2 +& +.BR PR_SVE_VL_LEN_MASK . +.IP +The configuration (including any pending deferred change) +is inherited across +.BR fork (2) +and +.BR clone (2). +.\" prctl PR_SVE_GET_VL +.TP +.BR PR_SVE_GET_VL " (since Linux 4.15, only on arm64)" +Get the thread's current SVE vector length configuration, +as configured by +.BR PR_SVE_SET_VL . +.IP +If successful, the return value describes the +.I current +configuration. +The bits corresponding to +.B PR_SVE_VL_LEN_MASK +contain the currently configured vector length in bytes. +The bit corresponding to +.B PR_SVE_VL_INHERIT +indicates whether the vector length will be inherited +across +.BR execve (2). +.IP +Note that there is no way determine whether there is +a pending vector length change that has not yet taken effect. +.IP +Providing that the kernel and platform support SVE, +this operation always succeeds. .\" .\" prctl PR_TASK_PERF_EVENTS_DISABLE .TP @@ -1534,6 +1632,8 @@ On success, .BR PR_GET_NO_NEW_PRIVS , .BR PR_GET_SECUREBITS , .BR PR_GET_SPECULATION_CTRL , +.BR PR_SVE_GET_VL , +.BR PR_SVE_SET_VL , .BR PR_GET_THP_DISABLE , .BR PR_GET_TIMING , .BR PR_GET_TIMERSLACK , @@ -1817,6 +1917,18 @@ and unused arguments to .BR prctl () are not 0. .TP +.B EINVAL +.I option +was +.B PR_SVE_SET_VL +and +.I arg2 +contains invalid flags, or +.I arg2 +& +.B SVE_VL_LEN_MASK +is not a valid vector length. +.TP .B ENODEV .I option was -- 2.1.4
WARNING: multiple messages have this Message-ID (diff)
From: Dave Martin <Dave.Martin@arm.com> To: mtk.manpages@gmail.com Cc: linux-arch@vger.kernel.org, linux-man@vger.kernel.org, Will Deacon <will@kernel.org>, linux-arm-kernel@lists.infradead.org, Catalin Marinas <catalin.marinas@arm.com> Subject: [PATCH 13/14] prctl.2: Add SVE prctls (arm64) Date: Tue, 12 May 2020 17:36:58 +0100 [thread overview] Message-ID: <1589301419-24459-14-git-send-email-Dave.Martin@arm.com> (raw) In-Reply-To: <1589301419-24459-1-git-send-email-Dave.Martin@arm.com> Add documentation for the the PR_SVE_SET_VL and PR_SVE_GET_VL prctls added in Linux 4.15 for arm64. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> --- I wrote the SVE support originally, so I probably have this one halfway right. The explantion added is not exhaustive, but I didn't want it to be too verbose. I may trim it a bit and move the detail to a dedicated page later on, but this is better than nothing in the meantime. --- man2/prctl.2 | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/man2/prctl.2 b/man2/prctl.2 index 7f511d2..dd16227 100644 --- a/man2/prctl.2 +++ b/man2/prctl.2 @@ -1291,6 +1291,104 @@ call failing with the error .BR ENXIO . For further details, see the kernel source file .IR Documentation/admin-guide/kernel-parameters.txt . +.\" prctl PR_SVE_SET_VL +.\" commit 2d2123bc7c7f843aa9db87720de159a049839862 +.\" linux-5.6/Documentation/arm64/sve.rst +.TP +.BR PR_SVE_SET_VL " (since Linux 4.15, only on arm64)" +Configure the thread's SVE vector length, +as specified by +.IR arg2 . +Arguments +.IR arg3 ", " arg4 " and " arg5 +are ignored. +.IP +The bits of +.I arg2 +corresponding to +.B SVE_VL_LEN_MASK +must be set to the desired vector length in bytes. +In addition, +.I arg2 +may include zero or more of the following flags: +.RS +.TP +.B PR_SVE_VL_INHERIT +Inherit the configured vector length across +.BR execve (2). +.TP +.B PR_SVE_SET_VL_ONEXEC +Defer the change until the next +.BR execve (2) +in this thread. +If +.B PR_SVE_VL_INHERIT +is also included in +.IR arg2 , +it takes effect +.I after +this deferred change. +.RE +.IP +On success, the vector length and flags are set as requested, +and any deferred change that was pending immediately before the +.B PR_SVE_SET_VL +call is canceled. +If +.B PR_SVE_SET_VL_ONEXEC +was included in +.IR arg2 , +the returned value describes the configuration +scheduled to take effect at the next +.BR execve (2). +Otherwise, the effect is immediate and +the returned value describes the new configuration. +The returned value is encoded in the same way as the return value of +.BR PR_SVE_GET_VL . +.IP +If neither of the above flags is included in +.IR arg2 , +a subsequent +.BR execve (2) +resets the vector length to the default value configured in +.IR /proc/sys/abi/sve_default_vector_length . +.IP +The actual vector length configured by this operation +is the greatest vector length supported by the platform +that does not exceed +.I arg2 +& +.BR PR_SVE_VL_LEN_MASK . +.IP +The configuration (including any pending deferred change) +is inherited across +.BR fork (2) +and +.BR clone (2). +.\" prctl PR_SVE_GET_VL +.TP +.BR PR_SVE_GET_VL " (since Linux 4.15, only on arm64)" +Get the thread's current SVE vector length configuration, +as configured by +.BR PR_SVE_SET_VL . +.IP +If successful, the return value describes the +.I current +configuration. +The bits corresponding to +.B PR_SVE_VL_LEN_MASK +contain the currently configured vector length in bytes. +The bit corresponding to +.B PR_SVE_VL_INHERIT +indicates whether the vector length will be inherited +across +.BR execve (2). +.IP +Note that there is no way determine whether there is +a pending vector length change that has not yet taken effect. +.IP +Providing that the kernel and platform support SVE, +this operation always succeeds. .\" .\" prctl PR_TASK_PERF_EVENTS_DISABLE .TP @@ -1534,6 +1632,8 @@ On success, .BR PR_GET_NO_NEW_PRIVS , .BR PR_GET_SECUREBITS , .BR PR_GET_SPECULATION_CTRL , +.BR PR_SVE_GET_VL , +.BR PR_SVE_SET_VL , .BR PR_GET_THP_DISABLE , .BR PR_GET_TIMING , .BR PR_GET_TIMERSLACK , @@ -1817,6 +1917,18 @@ and unused arguments to .BR prctl () are not 0. .TP +.B EINVAL +.I option +was +.B PR_SVE_SET_VL +and +.I arg2 +contains invalid flags, or +.I arg2 +& +.B SVE_VL_LEN_MASK +is not a valid vector length. +.TP .B ENODEV .I option was -- 2.1.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-05-12 16:37 UTC|newest] Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-12 16:36 [PATCH 00/14] prctl.2 man page updates for Linux 5.6 Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` [PATCH 01/14] prctl.2: tfix clarify that prctl can apply to threads Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 8:30 ` Michael Kerrisk (man-pages) 2020-05-13 8:30 ` Michael Kerrisk (man-pages) 2020-05-13 8:30 ` Michael Kerrisk (man-pages) 2020-05-12 16:36 ` [PATCH 02/14] prctl.2: Add health warning Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:10 ` Michael Kerrisk (man-pages) 2020-05-13 10:10 ` Michael Kerrisk (man-pages) 2020-05-13 10:10 ` Michael Kerrisk (man-pages) 2020-05-13 11:13 ` Dave Martin 2020-05-13 11:13 ` Dave Martin 2020-05-13 11:40 ` Michael Kerrisk (man-pages) 2020-05-13 11:40 ` Michael Kerrisk (man-pages) 2020-05-13 11:40 ` Michael Kerrisk (man-pages) 2020-05-13 11:41 ` Dave Martin 2020-05-13 11:41 ` Dave Martin 2020-05-13 11:41 ` Dave Martin 2020-05-12 16:36 ` [PATCH 03/14] prctl.2: tfix mis-description of thread ID values in procfs Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 8:36 ` Michael Kerrisk (man-pages) 2020-05-13 8:36 ` Michael Kerrisk (man-pages) 2020-05-12 16:36 ` [PATCH 04/14] prctl.2: srcfix add comments for navigation Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:09 ` Michael Kerrisk (man-pages) 2020-05-13 10:09 ` Michael Kerrisk (man-pages) 2020-05-13 10:56 ` Dave Martin 2020-05-13 10:56 ` Dave Martin 2020-05-13 11:03 ` Michael Kerrisk (man-pages) 2020-05-13 11:03 ` Michael Kerrisk (man-pages) 2020-05-13 11:03 ` Michael Kerrisk (man-pages) 2020-05-13 11:15 ` Dave Martin 2020-05-13 11:15 ` Dave Martin 2020-05-13 11:48 ` Michael Kerrisk (man-pages) 2020-05-13 11:48 ` Michael Kerrisk (man-pages) 2020-05-13 11:48 ` Michael Kerrisk (man-pages) 2020-05-13 11:51 ` Dave Martin 2020-05-13 11:51 ` Dave Martin 2020-05-13 11:51 ` Dave Martin 2020-05-12 16:36 ` [PATCH 05/14] prctl.2: tfix listing order of prctls Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:10 ` Michael Kerrisk (man-pages) 2020-05-13 10:10 ` Michael Kerrisk (man-pages) 2020-05-13 11:21 ` Dave Martin 2020-05-13 11:21 ` Dave Martin 2020-05-13 11:21 ` Dave Martin 2020-05-13 11:31 ` Michael Kerrisk (man-pages) 2020-05-13 11:31 ` Michael Kerrisk (man-pages) 2020-05-13 11:31 ` Michael Kerrisk (man-pages) 2020-05-13 11:45 ` Dave Martin 2020-05-13 11:45 ` Dave Martin 2020-05-13 11:45 ` Dave Martin 2020-05-12 16:36 ` [PATCH 06/14] prctl.2: ffix quotation mark tweaks Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:11 ` Michael Kerrisk (man-pages) 2020-05-13 10:11 ` Michael Kerrisk (man-pages) 2020-05-13 10:11 ` Michael Kerrisk (man-pages) 2020-05-13 11:39 ` Dave Martin 2020-05-13 11:39 ` Dave Martin 2020-05-13 11:39 ` Dave Martin 2020-05-13 11:46 ` Michael Kerrisk (man-pages) 2020-05-13 11:46 ` Michael Kerrisk (man-pages) 2020-05-13 11:51 ` Dave Martin 2020-05-13 11:51 ` Dave Martin 2020-05-13 11:51 ` Dave Martin 2020-05-12 16:36 ` [PATCH 07/14] prctl.2: Document removal of Intel MPX prctls Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:41 ` Dave Hansen 2020-05-12 16:41 ` Dave Hansen 2020-05-13 10:11 ` Michael Kerrisk (man-pages) 2020-05-13 10:11 ` Michael Kerrisk (man-pages) 2020-05-13 10:11 ` Michael Kerrisk (man-pages) 2020-05-12 16:36 ` [PATCH 08/14] prctl.2: Work around bogus constant "maxsig" in PR_SET_PDEATHSIG Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:30 ` Michael Kerrisk (man-pages) 2020-05-13 10:30 ` Michael Kerrisk (man-pages) 2020-05-13 10:30 ` Michael Kerrisk (man-pages) 2020-05-12 16:36 ` [PATCH 09/14] prctl.2: tfix minor punctuation in SPECULATION_CTRL prctls Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:31 ` Michael Kerrisk (man-pages) 2020-05-13 10:31 ` Michael Kerrisk (man-pages) 2020-05-13 10:31 ` Michael Kerrisk (man-pages) 2020-05-12 16:36 ` [PATCH 10/14] prctl.2: Add PR_SPEC_INDIRECT_BRANCH for " Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 11:21 ` Michael Kerrisk (man-pages) 2020-05-13 11:21 ` Michael Kerrisk (man-pages) 2020-05-13 11:21 ` Michael Kerrisk (man-pages) 2020-05-13 11:49 ` Dave Martin 2020-05-13 11:49 ` Dave Martin 2020-05-13 12:06 ` Michael Kerrisk (man-pages) 2020-05-13 12:06 ` Michael Kerrisk (man-pages) 2020-05-13 12:06 ` Michael Kerrisk (man-pages) 2020-05-13 13:53 ` Dave Martin 2020-05-13 13:53 ` Dave Martin 2020-05-13 13:53 ` Dave Martin 2020-05-12 16:36 ` [PATCH 11/14] prctl.2: Add PR_SPEC_DISABLE_NOEXEC " Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` [PATCH 12/14] prctl.2: Clarify the unsupported hardware case of EINVAL Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 10:48 ` Michael Kerrisk (man-pages) 2020-05-13 10:48 ` Michael Kerrisk (man-pages) 2020-05-12 16:36 ` Dave Martin [this message] 2020-05-12 16:36 ` [PATCH 13/14] prctl.2: Add SVE prctls (arm64) Dave Martin 2020-05-13 8:43 ` Will Deacon 2020-05-13 8:43 ` Will Deacon 2020-05-13 8:43 ` Will Deacon 2020-05-13 10:46 ` Dave Martin 2020-05-13 10:46 ` Dave Martin 2020-05-13 10:46 ` Dave Martin 2020-05-13 11:01 ` Michael Kerrisk (man-pages) 2020-05-13 11:01 ` Michael Kerrisk (man-pages) 2020-05-13 14:02 ` Dave Martin 2020-05-13 14:02 ` Dave Martin 2020-05-13 14:02 ` Dave Martin 2020-05-13 21:11 ` Will Deacon 2020-05-13 21:11 ` Will Deacon 2020-05-13 21:11 ` Will Deacon 2020-05-18 16:37 ` Dave Martin 2020-05-18 16:37 ` Dave Martin 2020-05-26 14:45 ` Dave Martin 2020-05-26 14:45 ` Dave Martin 2020-05-12 16:36 ` [PATCH 14/14] prctl.2: Add PR_PAC_RESET_KEYS (arm64) Dave Martin 2020-05-12 16:36 ` Dave Martin 2020-05-13 7:25 ` Will Deacon 2020-05-13 7:25 ` Will Deacon 2020-05-13 14:36 ` Dave Martin 2020-05-13 14:36 ` Dave Martin 2020-05-13 14:36 ` Dave Martin 2020-05-13 21:00 ` Will Deacon 2020-05-13 21:00 ` Will Deacon 2020-05-13 21:00 ` Will Deacon 2020-05-18 16:11 ` Dave Martin 2020-05-18 16:11 ` Dave Martin 2020-05-18 16:11 ` Dave Martin 2020-05-18 16:29 ` Will Deacon 2020-05-18 16:29 ` Will Deacon 2020-05-18 16:29 ` Will Deacon 2020-05-13 11:28 ` [PATCH 00/14] prctl.2 man page updates for Linux 5.6 Michael Kerrisk (man-pages) 2020-05-13 11:28 ` Michael Kerrisk (man-pages)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1589301419-24459-14-git-send-email-Dave.Martin@arm.com \ --to=dave.martin@arm.com \ --cc=catalin.marinas@arm.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-man@vger.kernel.org \ --cc=mtk.manpages@gmail.com \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.