public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Extensible rseq support for glibc
@ 2021-12-06 13:45 Florian Weimer
  2021-12-06 13:46 ` [PATCH 1/5] nptl: Add <thread_pointer.h> for defining __thread_pointer Florian Weimer
                   ` (5 more replies)
  0 siblings, 6 replies; 25+ messages in thread
From: Florian Weimer @ 2021-12-06 13:45 UTC (permalink / raw)
  To: libc-alpha; +Cc: Mathieu Desnoyers

This series again adds rseq support, this time in such a way that the
kernel can eventually request a larger rseq area size.  Registration can
be disabled using a new tunable.

The series is based mostly on Mathieu's earlier work, especially the
definition of RSEQ_SIG and the tests.

Thanks,
Florian

Florian Weimer (5):
  nptl: Add <thread_pointer.h> for defining __thread_pointer
  nptl: Add rseq registration
  Linux: Use rseq to accelerate sched_getcpu
  nptl: Add glibc.pthread.rseq tunable to control rseq registration
  nptl: Add public rseq symbols

 NEWS                                          |  11 +
 csu/libc-tls.c                                |   6 +
 manual/threads.texi                           |  81 ++++++
 manual/tunables.texi                          |  10 +
 nptl/descr.h                                  |   4 +
 nptl/pthread_create.c                         |  21 ++
 sysdeps/csky/nptl/thread_pointer.h            |  25 ++
 sysdeps/hppa/nptl/thread_pointer.h            |  25 ++
 sysdeps/ia64/nptl/thread_pointer.h            |  19 ++
 sysdeps/m68k/nptl/thread_pointer.h            |  20 ++
 sysdeps/microblaze/nptl/thread_pointer.h      |  19 ++
 sysdeps/nptl/dl-tls_init_tp.c                 |  33 ++-
 sysdeps/nptl/dl-tunables.list                 |   6 +
 sysdeps/nptl/internaltypes.h                  |   1 +
 sysdeps/nptl/thread_pointer.h                 |  19 ++
 sysdeps/powerpc/nptl/thread_pointer.h         |  23 ++
 sysdeps/sparc/nptl/thread_pointer.h           |  19 ++
 sysdeps/unix/sysv/linux/Makefile              |  17 +-
 sysdeps/unix/sysv/linux/Versions              |   5 +
 sysdeps/unix/sysv/linux/aarch64/bits/rseq.h   |  43 +++
 sysdeps/unix/sysv/linux/aarch64/ld.abilist    |   3 +
 sysdeps/unix/sysv/linux/alpha/ld.abilist      |   3 +
 sysdeps/unix/sysv/linux/arc/ld.abilist        |   3 +
 sysdeps/unix/sysv/linux/arm/be/ld.abilist     |   3 +
 sysdeps/unix/sysv/linux/arm/bits/rseq.h       |  83 ++++++
 sysdeps/unix/sysv/linux/arm/le/ld.abilist     |   3 +
 sysdeps/unix/sysv/linux/bits/rseq.h           |  29 ++
 sysdeps/unix/sysv/linux/csky/ld.abilist       |   3 +
 sysdeps/unix/sysv/linux/hppa/ld.abilist       |   3 +
 sysdeps/unix/sysv/linux/i386/ld.abilist       |   3 +
 sysdeps/unix/sysv/linux/ia64/ld.abilist       |   3 +
 .../unix/sysv/linux/m68k/coldfire/ld.abilist  |   3 +
 .../unix/sysv/linux/m68k/m680x0/ld.abilist    |   3 +
 sysdeps/unix/sysv/linux/microblaze/ld.abilist |   3 +
 sysdeps/unix/sysv/linux/mips/bits/rseq.h      |  62 +++++
 .../unix/sysv/linux/mips/mips32/ld.abilist    |   3 +
 .../sysv/linux/mips/mips64/n32/ld.abilist     |   3 +
 .../sysv/linux/mips/mips64/n64/ld.abilist     |   3 +
 sysdeps/unix/sysv/linux/nios2/ld.abilist      |   3 +
 sysdeps/unix/sysv/linux/powerpc/bits/rseq.h   |  37 +++
 .../sysv/linux/powerpc/powerpc32/ld.abilist   |   3 +
 .../linux/powerpc/powerpc64/be/ld.abilist     |   3 +
 .../linux/powerpc/powerpc64/le/ld.abilist     |   3 +
 sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist |   3 +
 sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist |   3 +
 sysdeps/unix/sysv/linux/rseq-internal.h       |  52 ++++
 sysdeps/unix/sysv/linux/s390/bits/rseq.h      |  37 +++
 .../unix/sysv/linux/s390/s390-32/ld.abilist   |   3 +
 .../unix/sysv/linux/s390/s390-64/ld.abilist   |   3 +
 sysdeps/unix/sysv/linux/sched_getcpu.c        |  19 +-
 sysdeps/unix/sysv/linux/sh/be/ld.abilist      |   3 +
 sysdeps/unix/sysv/linux/sh/le/ld.abilist      |   3 +
 .../unix/sysv/linux/sparc/sparc32/ld.abilist  |   3 +
 .../unix/sysv/linux/sparc/sparc64/ld.abilist  |   3 +
 sysdeps/unix/sysv/linux/sys/rseq.h            | 184 +++++++++++++
 sysdeps/unix/sysv/linux/tst-rseq-disable.c    |  95 +++++++
 sysdeps/unix/sysv/linux/tst-rseq-nptl.c       | 260 ++++++++++++++++++
 sysdeps/unix/sysv/linux/tst-rseq.c            |  72 +++++
 sysdeps/unix/sysv/linux/tst-rseq.h            |  57 ++++
 sysdeps/unix/sysv/linux/x86/bits/rseq.h       |  30 ++
 sysdeps/unix/sysv/linux/x86_64/64/ld.abilist  |   3 +
 sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist |   3 +
 sysdeps/x86/nptl/thread_pointer.h             |  33 +++
 63 files changed, 1539 insertions(+), 5 deletions(-)
 create mode 100644 sysdeps/csky/nptl/thread_pointer.h
 create mode 100644 sysdeps/hppa/nptl/thread_pointer.h
 create mode 100644 sysdeps/ia64/nptl/thread_pointer.h
 create mode 100644 sysdeps/m68k/nptl/thread_pointer.h
 create mode 100644 sysdeps/microblaze/nptl/thread_pointer.h
 create mode 100644 sysdeps/nptl/thread_pointer.h
 create mode 100644 sysdeps/powerpc/nptl/thread_pointer.h
 create mode 100644 sysdeps/sparc/nptl/thread_pointer.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/arm/bits/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/bits/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/mips/bits/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/rseq-internal.h
 create mode 100644 sysdeps/unix/sysv/linux/s390/bits/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/sys/rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-disable.c
 create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-nptl.c
 create mode 100644 sysdeps/unix/sysv/linux/tst-rseq.c
 create mode 100644 sysdeps/unix/sysv/linux/tst-rseq.h
 create mode 100644 sysdeps/unix/sysv/linux/x86/bits/rseq.h
 create mode 100644 sysdeps/x86/nptl/thread_pointer.h


base-commit: 68007900beef12000ed90f38c251eaf32fbc0490
-- 
2.33.1


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

end of thread, other threads:[~2021-12-07 15:48 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-06 13:45 [PATCH 0/5] Extensible rseq support for glibc Florian Weimer
2021-12-06 13:46 ` [PATCH 1/5] nptl: Add <thread_pointer.h> for defining __thread_pointer Florian Weimer
2021-12-06 16:44   ` Mathieu Desnoyers
2021-12-06 17:01     ` Florian Weimer
2021-12-06 19:55       ` Florian Weimer
2021-12-06 13:46 ` [PATCH 2/5] nptl: Add rseq registration Florian Weimer
2021-12-06 16:53   ` Mathieu Desnoyers
2021-12-06 17:10     ` Florian Weimer
2021-12-06 16:59   ` Mathieu Desnoyers
2021-12-06 17:14     ` Florian Weimer
2021-12-06 18:52       ` Mathieu Desnoyers
2021-12-06 19:03         ` Florian Weimer
2021-12-06 20:11           ` Paul E. McKenney
2021-12-06 20:26             ` Florian Weimer
2021-12-06 21:08               ` Paul E. McKenney
2021-12-06 13:46 ` [PATCH 3/5] Linux: Use rseq to accelerate sched_getcpu Florian Weimer
2021-12-06 16:50   ` Szabolcs Nagy
2021-12-06 17:06     ` Florian Weimer
2021-12-06 17:45       ` Szabolcs Nagy
2021-12-07 15:48         ` Florian Weimer
2021-12-06 13:46 ` [PATCH 4/5] nptl: Add glibc.pthread.rseq tunable to control rseq registration Florian Weimer
2021-12-06 13:53 ` [PATCH 5/5] nptl: Add public rseq symbols and <sys/rseq.h> Florian Weimer
2021-12-07 11:01   ` Szabolcs Nagy
2021-12-07 11:28     ` Florian Weimer
2021-12-06 16:13 ` [PATCH 0/5] Extensible rseq support for glibc Mathieu Desnoyers

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