Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190521231147.GD23599@brightrain.aerifal.cx>
Date: Tue, 21 May 2019 19:11:47 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH 00/11] Update for linux v5.1

On Sun, May 12, 2019 at 04:53:24PM +0200, Szabolcs Nagy wrote:
> * Rich Felker <dalias@...c.org> [2019-05-11 20:17:39 -0400]:
> > On Sat, May 11, 2019 at 06:46:15PM +0200, Szabolcs Nagy wrote:
> > > tested on x86_64 and i486, build tested on other targets.
> > > the SYS_ipc change does not affect the stripped libc.so on i486.
> > > (the other changes are header definitions only)
> > 
> > I think the SYS_ipc stuff should be ok, but please keep commit
> > messages to 76 columns or fewer (resulting in 80 with the 4-space
> > indent git prints). I can reformat if you have a pattern you'd like to
> > follow, but it's not obvious what the nicest one would be.
> 
> ok, changed the commit message formatting

Sorry, a few more things now that I've reviewed them all in more
detail...

> From f6cc4cdf345d1785659ed9b59f3a2827c3fd3c53 Mon Sep 17 00:00:00 2001
> From: Szabolcs Nagy <nsz@...t70.net>
> Date: Thu, 9 May 2019 19:20:17 +0000
> Subject: [PATCH 06/11] sys/socket.h: add new SO_ definitions from linux v5.1
> 
> the new definitions are from commits
> 
>   linux commit a9beb86ae6e55bd92f38453c8623de60b8e5a308
>   sock: Add SO_RCVTIMEO_NEW and SO_SNDTIMEO_NEW
> 
>   linux commit 45bdc66159d49bfc7f75fe02d25bc74f5d2660cf
>   socket: Rename SO_RCVTIMEO/ SO_SNDTIMEO with _OLD suffixes
> 
>   linux commit 9718475e69084de15c3930ce35672a7dc6da866b
>   socket: Add SO_TIMESTAMPING_NEW
> 
>   linux commit 887feae36aee6c08e0dafcdaa5ba921abbb2c56b
>   socket: Add SO_TIMESTAMP[NS]_NEW
> 
>   linux commit 7f1bc6e95d7840d4305595b3e4025cddda88cee5
>   sockopt: Rename SO_TIMESTAMP* to SO_TIMESTAMP*_OLD
> 
>   linux commit f5dd3d0c9638a9d9a02b5964c4ad636f06cf7e2c
>   net: introduce SO_BINDTOIFINDEX sockopt
> 
> SO_BINDTOIFINDEX behaves similar to SO_BINDTODEVICE, but takes a
> network interface index as argument, rather than the network
> interface name.
> 
> _NEW socket options got introduced for 64bit time_t support on 32bit
> targets, in musl the affected socket options are always the same as
> the _OLD values since different time_t requires a new abi, so the
> _OLD vs _NEW dispatch logic was not copied from the uapi headers.

Are the _OLD and _NEW ones intended to be application-facing APIs? I
think this is a question both of the kernel's intent and our intent.
When we add 64-bit time_t, however we do it, we'll need to emulate the
_NEW version on old kernels that lack it, and it's not clear that we'd
want to expose the _OLD version at all.

Perhaps we should split this patch into the time64 stuff and the other
changes so that the other changes can be applied right away if there's
further discussion to be had about time64.

> From 01dcbc761ace09ddc7295e14f33d95bc32a15318 Mon Sep 17 00:00:00 2001
> From: Szabolcs Nagy <nsz@...t70.net>
> Date: Thu, 9 May 2019 22:49:28 +0000
> Subject: [PATCH 10/11] ipc: prefer SYS_ipc when it is defined
> 
> Linux v5.1 introduced ipc syscalls on targets where previously only
> SYS_ipc was available, change the logic such that the ipc code keeps
> using SYS_ipc which works backward compatibly on older kernels.

I think this patch changes behavior at least on microblaze, which
already had both. A casual grep of arch/*/bits/syscall.h.in for
__NR_ipc and __NR_semget suggests there are no others affected, so
perhaps it's no big deal. Thoughts?

> From 071b6ba516a25db7d27868813c213eb898f15484 Mon Sep 17 00:00:00 2001
> From: Szabolcs Nagy <nsz@...t70.net>
> Date: Thu, 9 May 2019 20:44:27 +0000
> Subject: [PATCH 11/11] add new syscall numbers from linux v5.1
> 
> syscall numbers are now synced up across targets (starting from 403 the
> numbers are the same on all targets other than an arch specific offset)
> 
> IPC syscalls sem*, shm*, msg* got added where they were missing (except
> for semop: only semtimedop got added), the new semctl, shmctl, msgctl
> imply IPC_64, see
> 
>   linux commit 0d6040d4681735dfc47565de288525de405a5c99
>   arch: add split IPC system calls where needed
> 
> new 64bit time_t syscall variants got added on 32bit targets, see
> 
>   linux commit 48166e6ea47d23984f0b481ca199250e1ce0730a
>   y2038: add 64-bit time_t syscalls to all 32-bit architectures
> 
> new async io syscalls got added, see
> 
>   linux commit 2b188cc1bb857a9d4701ae59aa7768b5124e262e
>   Add io_uring IO interface
> 
>   linux commit edafccee56ff31678a091ddb7219aba9b28bc3cb
>   io_uring: add support for pre-mapped user IO buffers
> 
> a new syscall got added that uses the fd of /proc/<pid> as a stable
> handle for processes: allows sending signals without pid reuse issues,
> intended to eventually replace rt_sigqueueinfo, kill, tgkill and
> rt_tgsigqueueinfo, see

FWIW I don't think it can replace any of them, because open can fail
due to ENFILE/EMFILE/missing-proc/etc. This doesn't need any change;
just a comment.

Otherwise, these look good.x

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.