This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] x86: Wire up 32-bit direct socket calls
- From: Geert Uytterhoeven <geert at linux-m68k dot org>
- To: Andy Lutomirski <luto at kernel dot org>
- Cc: X86 ML <x86 at kernel dot org>, Network Development <netdev at vger dot kernel dot org>, Tulio Magno Quites Machado Filho <tuliom at linux dot vnet dot ibm dot com>, Andy Lutomirski <luto at amacapital dot net>, "linux-kernel at vger dot kernel dot org" <linux-kernel at vger dot kernel dot org>, Alexander Larsson <alexl at redhat dot com>, Cosimo Cecchi <cosimo at endlessm dot com>, Dan Nicholson <nicholson at endlessm dot com>, libc-alpha <libc-alpha at sourceware dot org>, Rajalakshmi Srinivasaraghavan <raji at linux dot vnet dot ibm dot com>, Linux-Arch <linux-arch at vger dot kernel dot org>
- Date: Wed, 2 Sep 2015 11:48:05 +0200
- Subject: Re: [PATCH] x86: Wire up 32-bit direct socket calls
- Authentication-results: sourceware.org; auth=none
- References: <cb5138299d37d5800e2d135b01a7667fa6115854 dot 1436912629 dot git dot luto at kernel dot org>
On Wed, Jul 15, 2015 at 12:24 AM, Andy Lutomirski <luto@kernel.org> wrote:
> On x86_64, there's no socketcall syscall; instead all of the socket
> calls are real syscalls. For 32-bit programs, we're stuck offering
> the socketcall syscall, but it would be nice to expose the direct
> calls as well. This will enable seccomp to filter socket calls (for
> new userspace only, but that's fine for some applications) and it
> will provide a tiny performance boost.
>
> Signed-off-by: Andy Lutomirski <luto@kernel.org>
> ---
> arch/x86/entry/syscalls/syscall_32.tbl | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
> index ef8187f9d28d..25e3cf1cd8fd 100644
> --- a/arch/x86/entry/syscalls/syscall_32.tbl
> +++ b/arch/x86/entry/syscalls/syscall_32.tbl
> @@ -365,3 +365,18 @@
> 356 i386 memfd_create sys_memfd_create
> 357 i386 bpf sys_bpf
> 358 i386 execveat sys_execveat stub32_execveat
> +359 i386 socket sys_socket
> +360 i386 socketpair sys_socketpair
> +361 i386 bind sys_bind
> +362 i386 connect sys_connect
> +363 i386 listen sys_listen
> +364 i386 accept4 sys_accept4
> +365 i386 getsockopt sys_getsockopt compat_sys_getsockopt
> +366 i386 setsockopt sys_setsockopt compat_sys_setsockopt
> +367 i386 getsockname sys_getsockname
> +368 i386 getpeername sys_getpeername
> +369 i386 sendto sys_sendto
> +370 i386 sendmsg sys_sendmsg compat_sys_sendmsg
> +371 i386 recvfrom sys_recvfrom compat_sys_recvfrom
> +372 i386 recvmsg sys_recvmsg compat_sys_recvmsg
> +373 i386 shutdown sys_shutdown
Should all other architectures follow suit?
Or should we follow the s390 approach:
commit 5a7ff75a0c63222d138d944240146dc49a9624e1
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date: Tue Aug 4 09:15:58 2015 +0200
s390/syscalls: ignore syscalls reachable via sys_socketcall
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds