unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Florian Weimer <fweimer@redhat.com>
Cc: Zack Weinberg <zackw@panix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	 GNU C Library <libc-alpha@sourceware.org>
Subject: Re: [RFC v2 08/20] sysdeps/wait: Use waitid if avaliable
Date: Tue, 25 Jun 2019 16:04:59 +0200	[thread overview]
Message-ID: <CAK8P3a3b32CNaXfR1w8cJuGS1H7qPTKLZc0BDxf-oW20i7aXvw@mail.gmail.com> (raw)
In-Reply-To: <87a7e522wb.fsf@oldenburg2.str.redhat.com>

On Tue, Jun 25, 2019 at 3:47 PM Florian Weimer <fweimer@redhat.com> wrote:
>
> * Arnd Bergmann:
>
> > On Tue, Jun 25, 2019 at 3:29 PM Arnd Bergmann <arnd@arndb.de> wrote:
> >> On Tue, Jun 25, 2019 at 2:10 PM Florian Weimer <fweimer@redhat.com> wrote:
> >>
> >> > Does this means that RV32 will use a 32-bit struct timeval in those
> >> > system calls?  Even if everything else 64-bit?
> >>
> >> Correct. Only those four (all deprecated but still used) system calls,
> >> as we could not agree on a new interface before 5.1, and there
> >> is no urgency for deployment when they can be emulated.
> >
> > Correction: getrusage() is still a recommended interface in POSIX.1-2017
> > with no nanosecond based replacement, while wait4(), getitimer() and
> > getrusage() are all obsolete but cannot be implemented on top of other
> > POSIX system calls.
>
> This makes me rather unhappy.  I also don't see the benefit of renaming
> all time-related system calls for new architectures.

What got renamed? I was trying very hard to make it as consistent
and easy as possible. There is a strict mapping of __NR_* macros
to argument types for each system call [1], so e.g. __kernel_timespec
will always be used together with system calls named *time64(),
while the old system calls always refer to the traditional
"struct timespec {long tv_sec; long tv_nsec;}" type. This is the
same way that loff_t gets handled, so I assumed that all C libraries
would know how to deal with this well.

> Oh well.  I hope
> someone will figure out how to integrate this smoothly into glibc.

Integrating this should actually be easier than the other system calls
since you only need to implement the fallback path and not also the
call into the replacement. One major factor for not requiring replacements
for getrusage()/getitimer()/setitimer() first was actually that both glibc
and musl have plans to support old kernels and need to implement
the fallback path regardless of whether we implemented the new
version or not.

       Arnd

[1] ignoring the universally hated x32 ABI

  reply	other threads:[~2019-06-25 14:05 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-25  0:08 [RFC v2 00/20] RISC-V glibc port for the 32-bit Alistair Francis
2019-06-25  0:08 ` [RFC v2 01/20] y2038: Introduce internal for glibc struct __timespec64 Alistair Francis
2019-06-25  0:08 ` [RFC v2 02/20] y2038: Provide conversion helpers for " Alistair Francis
2019-06-25  0:08 ` [RFC v2 03/20] y2038: linux: Provide __clock_settime64 implementation Alistair Francis
2019-06-25 11:05   ` Arnd Bergmann
2019-06-25 15:51     ` Lukasz Majewski
2019-06-25 16:39       ` Arnd Bergmann
2019-06-26  9:07         ` Lukasz Majewski
2019-06-26 12:36           ` Arnd Bergmann
2019-06-26 15:03             ` Lukasz Majewski
2019-06-26 15:11               ` Florian Weimer
2019-06-26 22:49                 ` Lukasz Majewski
2019-06-27  7:14                   ` Florian Weimer
2019-06-27  7:36                     ` Lukasz Majewski
2019-06-26 18:58               ` Arnd Bergmann
2019-06-26 22:55                 ` Lukasz Majewski
2019-06-27  7:45                   ` Arnd Bergmann
2019-06-27 10:35                     ` Lukasz Majewski
2019-06-27 13:32                       ` Arnd Bergmann
2019-06-27 14:07                         ` Lukasz Majewski
2019-06-27 14:57                           ` Arnd Bergmann
2019-06-27 15:23                             ` Lukasz Majewski
2019-06-27 15:45                               ` Arnd Bergmann
2019-06-27 16:16                                 ` Lukasz Majewski
2019-06-27 21:25                                   ` Arnd Bergmann
2019-06-27 22:08                                     ` Lukasz Majewski
2019-07-04  0:04                                       ` Alistair Francis
2019-07-04  8:13                                         ` Lukasz Majewski
2019-07-08  9:32                                           ` Lukasz Majewski
2019-06-27 20:08                           ` Alistair Francis
2019-06-27 21:02                             ` Lukasz Majewski
2019-07-08 10:49         ` Joseph Myers
2019-06-25  0:08 ` [RFC v2 04/20] include/time.h: Fix conflicting timespec types on 32-bit Alistair Francis
2019-06-25 11:17   ` Arnd Bergmann
2019-06-25 22:20     ` Alistair Francis
2019-06-25  0:08 ` [RFC v2 05/20] sysdeps/nanosleep: Use clock_nanosleep_time64 if avaliable Alistair Francis
2019-06-25  8:24   ` Andreas Schwab
2019-06-25  8:59   ` Arnd Bergmann
2019-06-26 18:20     ` Alistair Francis
2019-06-25  0:09 ` [RFC v2 06/20] sysdeps/futex: Use futex_time64 " Alistair Francis
2019-06-25 11:14   ` Florian Weimer
2019-06-25 11:26     ` Andreas Schwab
2019-06-25 11:41       ` Arnd Bergmann
2019-06-25 12:06         ` Florian Weimer
2019-06-25 13:32           ` Arnd Bergmann
2019-06-25  0:09 ` [RFC v2 07/20] sysdeps/gettimeofday: Use clock_gettime64 " Alistair Francis
2019-06-27 13:14   ` Adhemerval Zanella
2019-07-03 23:49     ` Alistair Francis
2019-07-24 20:22   ` Joseph Myers
2019-07-24 23:00     ` Alistair Francis
2019-07-25 12:57       ` Arnd Bergmann
2019-07-25 17:03         ` Paul Eggert
2019-07-25 17:21           ` Zack Weinberg
2019-07-25 18:53             ` Arnd Bergmann
2019-07-26 13:01               ` Florian Weimer
2019-07-26 13:08                 ` Zack Weinberg
2019-07-25 21:23       ` Joseph Myers
2019-06-25  0:09 ` [RFC v2 08/20] sysdeps/wait: Use waitid " Alistair Francis
2019-06-25  8:16   ` Andreas Schwab
2019-06-25 10:55   ` Zack Weinberg
2019-06-25 11:06     ` Florian Weimer
2019-06-25 12:00       ` Arnd Bergmann
2019-06-25 12:10         ` Florian Weimer
2019-06-25 13:29           ` Arnd Bergmann
2019-06-25 13:39             ` Arnd Bergmann
2019-06-25 13:47               ` Florian Weimer
2019-06-25 14:04                 ` Arnd Bergmann [this message]
2019-06-25 14:08                   ` Florian Weimer
2019-06-25 14:21                     ` Arnd Bergmann
2019-06-25 14:29                       ` Florian Weimer
2019-06-26 14:37                         ` Arnd Bergmann
2019-06-26 15:48                           ` Florian Weimer
2019-06-26 16:28                             ` Andreas Schwab
2019-07-08 12:09                               ` Florian Weimer
2019-07-08 12:34                                 ` Andreas Schwab
2019-07-08 12:36                                   ` Florian Weimer
2019-07-09 22:57                                     ` Alistair Francis
2019-07-10  7:33                                       ` Andreas Schwab
2019-07-10 17:47                                         ` Alistair Francis
2019-07-25 15:49                                     ` Joseph Myers
2019-06-26 21:08                             ` Arnd Bergmann
2019-06-27  7:33                               ` Florian Weimer
2019-06-27  8:25                                 ` Andreas Schwab
2019-06-27 10:21                                 ` Arnd Bergmann
2019-06-27 11:12                                   ` Florian Weimer
2019-06-27 15:24                                     ` Arnd Bergmann
2019-07-03 23:50                                       ` Alistair Francis
2019-06-25 23:51         ` Alistair Francis
2019-06-25  0:09 ` [RFC v2 09/20] sysdeps/getrlimit: Use prlimit64 " Alistair Francis
2019-06-25 11:11   ` Florian Weimer
2019-06-25 20:45     ` Alistair Francis
2019-06-25 21:10       ` Florian Weimer
2019-06-25 23:38         ` Alistair Francis
2019-06-25  0:09 ` [RFC v2 10/20] Documentation for the RISC-V 32-bit port Alistair Francis
2019-06-25  0:09 ` [RFC v2 11/20] RISC-V: Use 64-bit time_t and off_t for RV32 and RV64 Alistair Francis
2019-06-25  0:09 ` [RFC v2 12/20] RISC-V: Support dynamic loader for the 32-bit Alistair Francis
2019-06-25  0:09 ` [RFC v2 13/20] RISC-V: Add path of library directories " Alistair Francis
2019-06-25  0:09 ` [RFC v2 14/20] RISC-V: The ABI implementation " Alistair Francis
2019-06-25  0:09 ` [RFC v2 15/20] RISC-V: Hard float support for the 32 bit Alistair Francis
2019-06-25  0:09 ` [RFC v2 16/20] RISC-V: Regenerate ULPs of RISC-V Alistair Francis
2019-06-25  0:09 ` [RFC v2 17/20] RISC-V: Add ABI lists Alistair Francis
2019-06-25  0:09 ` [RFC v2 18/20] RISC-V: Build Infastructure for the 32-bit Alistair Francis
2019-06-25  0:09 ` [RFC v2 19/20] RISC-V: Fix llrint and llround missing exceptions on RV32 Alistair Francis
2019-06-25  0:09 ` [RFC v2 20/20] Add RISC-V 32-bit target to build-many-glibcs.py Alistair Francis
2019-06-25 11:15 ` [RFC v2 00/20] RISC-V glibc port for the 32-bit Florian Weimer
2019-06-25 12:07   ` Arnd Bergmann
2019-07-04  8:47 ` Jim Wilson

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

  List information: https://www.gnu.org/software/libc/involved.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK8P3a3b32CNaXfR1w8cJuGS1H7qPTKLZc0BDxf-oW20i7aXvw@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=alistair.francis@wdc.com \
    --cc=fweimer@redhat.com \
    --cc=libc-alpha@sourceware.org \
    --cc=zackw@panix.com \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).