public inbox for linux-man@vger.kernel.org
 help / color / mirror / Atom feed
From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: mtk.manpages@gmail.com
Cc: linux-man@vger.kernel.org,
	Gabriel Krisman Bertazi <krisman@collabora.com>
Subject: [PATCH] prctl.2: Document Syscall User Dispatch
Date: Sat, 19 Dec 2020 01:10:09 -0300	[thread overview]
Message-ID: <20201219041009.3143592-1-krisman@collabora.com> (raw)

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
---
 man2/prctl.2 | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/man2/prctl.2 b/man2/prctl.2
index f25f05fdb593..2e82c73c10c2 100644
--- a/man2/prctl.2
+++ b/man2/prctl.2
@@ -1533,6 +1533,70 @@ For more information, see the kernel source file
 (or
 .I Documentation/arm64/sve.txt
 before Linux 5.3).
+.TP
+.\"commit 1446e1df9eb183fdf81c3f0715402f1d7595d4cb
+.BR PR_SET_SYSCALL_USER_DISPATCH " (Since Linux 5.11, x86 only)"
+.IP
+Configure the Syscall User Dispatch mechanism for the calling thread, to
+selective intercept system calls and dispatch them back to userspace
+through
+.IR SIGSYS .
+.IP
+The current Syscall User Dispatch mode is selected via
+.IR "arg2",
+which can either be set to
+.B PR_SYS_DISPATCH_ON
+to enable the feature, or to
+.B PR_SYS_DISPATCH_OFF
+to turn it off.
+.IP
+With
+.IR "arg2"
+set to
+.BR PR_SYS_DISPATCH_ON ,
+.IR "arg3"
+and
+.I "arg4"
+respectively identify the
+.I offset
+and
+.I length
+of a memory region in the process map from where system calls are always
+allowed to be executed, regardless of the switch variable.
+.I "arg5"
+points to a char-sized variable that is a fast switch to enable/disable
+the mechanism without invoking the kernel.
+.I "arg5"
+can be set to either
+.BR PR_SYS_DISPATCH_ON
+to enable the mechanism or to
+.BR PR_SYS_DISPATCH_OFF
+to temporarily disable it.  Any other value will fail the application
+with a
+.IR SIGSYS .
+.IP
+When a system call is intercepted, a
+.I SIGSYS
+is raised with
+.I si_code
+set to
+.B SYS_USER_DISPATCH.
+.IP
+When
+.I "arg2"
+is set to
+.BR PR_SYS_DISPATCH_OFF ,
+the remaining arguments must be set to
+.BR 0 .
+.IP
+The setting is not preserved across
+.BR fork (2),
+.BR clone (2)
+or
+.BR execve (2) .
+.IP
+For more information, see the kernel source file
+.IR Documentation/admin-guide/syscall-user-dispatch.rst
 .\" prctl PR_SET_TAGGED_ADDR_CTRL
 .\" commit 63f0c60379650d82250f22e4cf4137ef3dc4f43d
 .TP
@@ -2000,6 +2064,14 @@ and
 .I arg3
 is an invalid address.
 .TP
+.B EFAULT
+.I option
+is
+.BR PR_SET_SYSCALL_USER_DISPATCH
+and
+.I arg5
+has an invalid address.
+.TP
 .B EINVAL
 The value of
 .I option
@@ -2229,6 +2301,27 @@ is
 and SVE is not available on this platform.
 .TP
 .B EINVAL
+.I option is
+.B PR_SET_SYSCALL_USER_DISPATCH
+and one of the following is true:
+.RS
+.IP * 3
+.I arg2
+is
+.B PR_SYS_DISPATCH_OFF
+and remaining arguments are not
+.BR 0.
+.IP * 3
+.I arg2
+is
+.B PR_SYS_DISPATCH_ON
+and the memory region provided is invalid.
+.IP * 3
+.I arg2
+is invalid.
+.RE
+.TP
+.B EINVAL
 .I option
 is
 .BR PR_SET_TAGGED_ADDR_CTRL
-- 
2.29.2


             reply	other threads:[~2020-12-19  4:11 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-19  4:10 Gabriel Krisman Bertazi [this message]
2020-12-19 15:01 ` [PATCH] prctl.2: Document Syscall User Dispatch Alejandro Colomar (man-pages)
2020-12-21 16:38   ` Gabriel Krisman Bertazi

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=20201219041009.3143592-1-krisman@collabora.com \
    --to=krisman@collabora.com \
    --cc=linux-man@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox