From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: Florian Weimer <fw@deneb.enyo.de>
Cc: luto@kernel.org, tglx@linutronix.de, keescook@chromium.org,
christian.brauner@ubuntu.com, peterz@infradead.org,
willy@infradead.org, shuah@kernel.org,
linux-kernel@vger.kernel.org, linux-api@vger.kernel.org,
linux-kselftest@vger.kernel.org, x86@kernel.org,
gofmanp@gmail.com, kernel@collabora.com
Subject: Re: [PATCH v7 7/7] docs: Document Syscall User Dispatch
Date: Wed, 18 Nov 2020 12:02:36 -0500 [thread overview]
Message-ID: <877dqivbrn.fsf@collabora.com> (raw)
In-Reply-To: <875z63yrrq.fsf@mid.deneb.enyo.de> (Florian Weimer's message of "Wed, 18 Nov 2020 09:48:41 +0100")
Florian Weimer <fw@deneb.enyo.de> writes:
> * Gabriel Krisman Bertazi:
>
>> +Interface
>> +---------
>> +
>> +A process can setup this mechanism on supported kernels
>> +CONFIG_SYSCALL_USER_DISPATCH) by executing the following prctl:
>> +
>> + prctl(PR_SET_SYSCALL_USER_DISPATCH, <op>, <offset>, <length>, [selector])
>> +
>> +<op> is either PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF, to enable and
>> +disable the mechanism globally for that thread. When
>> +PR_SYS_DISPATCH_OFF is used, the other fields must be zero.
>> +
>> +<offset> and <offset+length> delimit a closed memory region interval
>> +from which syscalls are always executed directly, regardless of the
>> +userspace selector. This provides a fast path for the C library, which
>> +includes the most common syscall dispatchers in the native code
>> +applications, and also provides a way for the signal handler to return
>> +without triggering a nested SIGSYS on (rt_)sigreturn. Users of this
>> +interface should make sure that at least the signal trampoline code is
>> +included in this region. In addition, for syscalls that implement the
>> +trampoline code on the vDSO, that trampoline is never intercepted.
>> +
>> +[selector] is a pointer to a char-sized region in the process memory
>> +region, that provides a quick way to enable disable syscall redirection
>> +thread-wide, without the need to invoke the kernel directly. selector
>> +can be set to PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF. Any other
>> +value should terminate the program with a SIGSYS.
>
> Is this a process property or a task/thread property? The last
> paragraph says “thread-wide”, but the first paragraph says “process”.
It is per-thread, as it doesn't survive across clone/fork syscalls. I
will fix the first paragraph of this text.
--
Gabriel Krisman Bertazi
next prev parent reply other threads:[~2020-11-18 17:02 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-18 3:28 [PATCH v7 0/7] Syscall User Dispatch Gabriel Krisman Bertazi
2020-11-18 3:28 ` [PATCH v7 1/7] x86: vdso: Expose sigreturn address on vdso to the kernel Gabriel Krisman Bertazi
2020-11-18 3:28 ` [PATCH v7 2/7] signal: Expose SYS_USER_DISPATCH si_code type Gabriel Krisman Bertazi
2020-11-18 3:28 ` [PATCH v7 3/7] kernel: Implement selective syscall userspace redirection Gabriel Krisman Bertazi
2020-11-19 12:36 ` Peter Zijlstra
2020-11-19 17:43 ` Gabriel Krisman Bertazi
2020-11-21 0:18 ` Kees Cook
2020-11-22 4:01 ` Andy Lutomirski
2020-11-18 3:28 ` [PATCH v7 4/7] entry: Support Syscall User Dispatch on common syscall entry Gabriel Krisman Bertazi
2020-11-18 3:28 ` [PATCH v7 5/7] selftests: Add kselftest for syscall user dispatch Gabriel Krisman Bertazi
2020-11-18 3:28 ` [PATCH v7 6/7] selftests: Add benchmark " Gabriel Krisman Bertazi
2020-11-18 3:28 ` [PATCH v7 7/7] docs: Document Syscall User Dispatch Gabriel Krisman Bertazi
2020-11-18 8:48 ` Florian Weimer
2020-11-18 17:02 ` Gabriel Krisman Bertazi [this message]
2020-11-18 8:47 ` [PATCH v7 0/7] " Florian Weimer
2020-11-18 17:01 ` Gabriel Krisman Bertazi
2020-11-18 17:22 ` Florian Weimer
2020-11-19 12:38 ` Peter Zijlstra
2020-11-21 0:24 ` Kees Cook
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=877dqivbrn.fsf@collabora.com \
--to=krisman@collabora.com \
--cc=christian.brauner@ubuntu.com \
--cc=fw@deneb.enyo.de \
--cc=gofmanp@gmail.com \
--cc=keescook@chromium.org \
--cc=kernel@collabora.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=luto@kernel.org \
--cc=peterz@infradead.org \
--cc=shuah@kernel.org \
--cc=tglx@linutronix.de \
--cc=willy@infradead.org \
--cc=x86@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: link
Be 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.