public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] Optimize posix_spawn signal setup with clone3
@ 2023-01-12 13:58 Adhemerval Zanella
  2023-01-12 13:58 ` [PATCH v4 1/6] linux: Do not reset signal handler in posix_spawn if it is already SIG_DFL Adhemerval Zanella
                   ` (7 more replies)
  0 siblings, 8 replies; 24+ messages in thread
From: Adhemerval Zanella @ 2023-01-12 13:58 UTC (permalink / raw)
  To: libc-alpha, Carlos O'Donell

Currently posix_spawn has to issue at least NSIG sigaction syscalls
to obtain current signal disposition and more if they there are not
either SIG_IGN or SIG_DFL.  The new clone3 CLONE_CLEAR_SIGHAND flags
introduced with Linux 5.5 resets all signal handlers of the child not
set to SIG_IGN to SIG_DFL, thus allowing posix_spawn to skip this
preparation phase.

The exception is the signals defined by posix_spawnattr_setsigdefault
when POSIX_SPAWN_SETSIGDEF is set (since they can be SIG_IGN).  In
this case posix_spawn helper process needs to issue a sigction to
set the signal disposition to SIG_DFL.

The patchset also adds clone3 implementation for aarch64.  The clone3
for x86_64 is change to not align the stack, since this is not
async-signal safe (although current calls does mask/unmask signals).

* Changes from v3:
  - Changes commit message and comments wording.
  - Removed powerpc, s390x, riscv, arm, and mips clone3 optimizations.

* Changes from v2:
  - Improve clone3 internal documentation.

* Changes from v1:
  - Extend clone3 documentation.
  - Remove x86_64 stack alignment on clone3 child.
  - Fixed powerpc64 missing initial stack frame.
  - Fixed missing save/restore r7 for arm.

Adhemerval Zanella (6):
  linux: Do not reset signal handler in posix_spawn if it is already
    SIG_DFL
  linux: Extend internal clone3 documentation
  Linux: Do not align the stack for __clone3
  linux: Add clone3 CLONE_CLEAR_SIGHAND optimization to posix_spawn
  aarch64: Add the clone3 wrapper
  Linux: optimize clone3 internal usage

 include/clone_internal.h                      |  37 +++-
 posix/Makefile                                |   3 +-
 posix/tst-spawn7.c                            | 179 ++++++++++++++++++
 sysdeps/unix/sysv/linux/Makefile              |   3 +-
 sysdeps/unix/sysv/linux/aarch64/clone3.S      |  85 +++++++++
 sysdeps/unix/sysv/linux/aarch64/sysdep.h      |   2 +
 sysdeps/unix/sysv/linux/clone-internal.c      |  59 ++++--
 sysdeps/unix/sysv/linux/clone3.h              |  15 +-
 sysdeps/unix/sysv/linux/kernel-features.h     |   9 +
 sysdeps/unix/sysv/linux/spawni.c              |  33 +++-
 .../sysv/linux/tst-misalign-clone-internal.c  |  74 --------
 sysdeps/unix/sysv/linux/x86_64/clone3.S       |   3 -
 12 files changed, 384 insertions(+), 118 deletions(-)
 create mode 100644 posix/tst-spawn7.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/clone3.S
 delete mode 100644 sysdeps/unix/sysv/linux/tst-misalign-clone-internal.c

-- 
2.34.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2023-02-28 21:31 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-12 13:58 [PATCH v4 0/6] Optimize posix_spawn signal setup with clone3 Adhemerval Zanella
2023-01-12 13:58 ` [PATCH v4 1/6] linux: Do not reset signal handler in posix_spawn if it is already SIG_DFL Adhemerval Zanella
2023-01-18 22:24   ` Carlos O'Donell
2023-01-12 13:58 ` [PATCH v4 2/6] linux: Extend internal clone3 documentation Adhemerval Zanella
2023-01-18 22:25   ` Carlos O'Donell
2023-01-12 13:58 ` [PATCH v4 3/6] Linux: Do not align the stack for __clone3 Adhemerval Zanella
2023-01-18 22:26   ` Carlos O'Donell
2023-01-12 13:58 ` [PATCH v4 4/6] linux: Add clone3 CLONE_CLEAR_SIGHAND optimization to posix_spawn Adhemerval Zanella
2023-01-18 22:28   ` Carlos O'Donell
2023-01-12 13:58 ` [PATCH v4 5/6] aarch64: Add the clone3 wrapper Adhemerval Zanella
2023-01-18 22:29   ` Carlos O'Donell
2023-01-12 13:58 ` [PATCH v4 6/6] Linux: optimize clone3 internal usage Adhemerval Zanella
2023-01-18 22:31   ` Carlos O'Donell
2023-01-18 17:53 ` [PATCH v4 0/6] Optimize posix_spawn signal setup with clone3 Adhemerval Zanella Netto
2023-01-18 22:24   ` Carlos O'Donell
2023-01-19 14:39     ` Adhemerval Zanella Netto
2023-01-22 23:21       ` Carlos O'Donell
2023-02-28 16:34 ` H.J. Lu
2023-02-28 17:11   ` Adhemerval Zanella Netto
2023-02-28 18:09   ` Florian Weimer
2023-02-28 18:16     ` Adhemerval Zanella Netto
2023-02-28 19:07       ` H.J. Lu
2023-02-28 21:19     ` Andreas Schwab
2023-02-28 21:31       ` H.J. Lu

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).