From: Tycho Andersen <tycho@tycho.ws>
To: Andy Lutomirski <luto@kernel.org>
Cc: X86 ML <x86@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
Borislav Petkov <bp@alien8.de>,
Peter Zijlstra <peterz@infradead.org>,
Daniel Colascione <dancol@google.com>,
Florian Weimer <fweimer@redhat.com>,
Carlos O'Donell <carlos@redhat.com>,
Rich Felker <dalias@libc.org>
Subject: Re: Cleaning up numbering for new x86 syscalls?
Date: Tue, 20 Nov 2018 09:48:52 -0700 [thread overview]
Message-ID: <20181120164852.GC4992@cisco> (raw)
In-Reply-To: <CALCETrVPcgKarpTOsdTfODkNA76W04WvW+tNWoOx6+Em0KS04A@mail.gmail.com>
On Mon, Nov 19, 2018 at 04:22:49PM -0800, Andy Lutomirski wrote:
> Hi all-
>
> We currently have some giant turds in the way that syscalls are
> numbered. We have the x86_32 table, which is totally sane other than
> some legacy multiplexers. Then we have the x86_64 table, which is,
> um, demented:
>
> - The numbers don't match x86_32. I have no idea why.
>
> - We use bit 30, which triggers in_x32_syscall(). It should have
> been bit 31, bit I digress.
>
> - We have this weird set of extra x32 syscalls that start at 512.
> Who wants to bet whether we have no bugs if someone does syscall with,
> say, nr == 512 (i.e. not 512 | BIT(30)) or nr == (16 | BIT(30))? The
> latter would be non-compat ioctl with in_x32_syscall() set and hence
> in_compat_syscall() set.
>
> - Bloody restart_syscall() has a different number on x86_64 and
> x64_32, which is a big mess.
>
> I propose we consider some subset of the following:
>
> 1. Introduce restart_syscall_2(). Make its number be 1024. Maybe
> someday we could start using it instead of restart_syscall(). The
> only issue I can see is programs that allow restart_syscall() using
> seccomp but don't allow the new variant.
>
> 2. Introduce an outright ban on new syscalls with nr < 1024.
>
> 3. Introduce an outright ban on the addition of new __x32_compat
> syscalls. If new compat hacks are needed, they can use
> in_compat_syscall(), thank you very much.
>
> 4. Modify the wrappers of the __x32_compat entries so that they will
> return -ENOSYS if in_x32_syscall() returns false.
This sounds like a great idea independent of all of this.
> 5. Adjust the scripts so that we only have to wire up new syscalls
> once. They'll have a nr above 1024, and they'll have the same nr on
> all x86 variants.
>
> Thoughts?
+1. Who wants to do it? :D
Tycho
next prev parent reply other threads:[~2018-11-20 16:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-20 0:22 Cleaning up numbering for new x86 syscalls? Andy Lutomirski
2018-11-20 7:33 ` Ingo Molnar
2018-11-20 23:04 ` Bernd Petrovitsch
2018-11-30 23:25 ` Maciej W. Rozycki
2018-11-20 9:03 ` Florian Weimer
2018-11-20 15:23 ` Andy Lutomirski
2018-11-20 18:07 ` Josh Poimboeuf
2018-11-21 17:23 ` Arnd Bergmann
2018-11-20 16:48 ` Tycho Andersen [this message]
2018-11-21 17:14 ` Arnd Bergmann
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=20181120164852.GC4992@cisco \
--to=tycho@tycho.ws \
--cc=bp@alien8.de \
--cc=carlos@redhat.com \
--cc=dalias@libc.org \
--cc=dancol@google.com \
--cc=fweimer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=peterz@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).