Re: [RFC PATCH for 4.17 02/21] rseq: Introduce restartable sequences system call (v12)

From: Peter Zijlstra
Date: Wed Mar 28 2018 - 13:50:09 EST


On Wed, Mar 28, 2018 at 11:37:06AM -0400, Mathieu Desnoyers wrote:
> ----- On Mar 28, 2018, at 11:28 AM, Peter Zijlstra peterz@xxxxxxxxxxxxx wrote:
>
> > On Wed, Mar 28, 2018 at 11:14:05AM -0400, Mathieu Desnoyers wrote:
> >
> >> > If at all possible I would make it SIGSEGV when issueing SYSCALL()s from
> >> > within an RSEQ.
> >>
> >> What's the goal there ? rseq critical sections can technically do system calls
> >> if they wish. Why prevent this ?
> >
> > This all started as a way to do 'small' _fast_ per-cpu ops, System calls
> > do NOT fit in that pattern. If you're willing to do a system calls the
> > cost of atomics is not a problem.
>
> I'm not arguing that a typical rseq would do a system call. I'm merely
> pointing out that if we start putting arbitrary limitations like "SIGSEGV
> when a fork or system call is encountered on top of rseq", this will cause
> pain in user-space.

I don't think disallowing system calls is arbitrary. And I think that is
something we really want to enforce, because it's batshit insane to
allow.

And if we allow now, people _will_ use it and we can't ever take it
away again.