[PATCH v5 0/6] glibc tunables

Siddhesh Poyarekar siddhesh@sourceware.org
Mon Oct 24 14:43:00 GMT 2016


Hi,

... and I'm back!

Here is another updated patch set with suggestions from multiple people
incorporated, including results from discussions at the GNU Tools Cauldron last
month.

 - I had inadvertently opened a hole with MALLOC_CHECK_ where it could be read
   in setuid binaries even if /etc/suid-debug was not present.  This is now
   fixed.

 - __tunables_init is now called *really* early so that tunables are set up
   before apply_irel is called.  H. J. will now have to split his patch such
   that his IFUNC resolver looks at both, the tunables and the result of cpuid
   instead of overriding cpuid using tunables.  I think this is a good thing
   since it keeps the cpuid information honest and only masks it for the
   specific purpose of IFUNC.

 - The very early initialization meant that I needed a new version of __access
   that does not set errno.  That's another patch to the patchset.  This is an
   internal function, so there is no ABI event here.

 - Enhanced the --enable-tunables option (in a separate patch) to accept string
   values other than 'yes' and 'no'.  As discussed at Cauldron, this would
   allow us to experiment with different frontends without committing to one
   yet.  Right now there is only one frontend, i.e. 'valstring' that allows
   setting tunables using the single GLIBC_TUNABLES environment variable.

 - Wrote a manual node for tunables.

As usual, the branch siddhesh/tunables has these patches and any patches they
may depend on (like the doc changes for malloc).

Siddhesh Poyarekar (6):
  Static inline functions for mallopt helpers
  New internal function __access_noerrno
  Add framework for tunables
  Initialize tunable list with the GLIBC_TUNABLES environment variable
  Enhance --enable-tunables to select tunables frontend at build time
  User manual documentation for tunables

 INSTALL                                    |  18 ++
 Makeconfig                                 |  16 ++
 README.tunables                            |  84 ++++++
 config.h.in                                |   3 +
 config.make.in                             |   1 +
 configure                                  |  17 ++
 configure.ac                               |  10 +
 csu/init-first.c                           |   2 -
 csu/libc-start.c                           |  11 +
 elf/Makefile                               |   7 +
 elf/Versions                               |   3 +
 elf/dl-support.c                           |   2 +
 elf/dl-sysdep.c                            |   8 +
 elf/dl-tunable-types.h                     |  46 +++
 elf/dl-tunables.c                          | 435 +++++++++++++++++++++++++++++
 elf/dl-tunables.h                          |  82 ++++++
 elf/dl-tunables.list                       |  69 +++++
 elf/rtld.c                                 |   2 +
 include/unistd.h                           |   6 +
 io/Makefile                                |   1 +
 io/access.c                                |  10 +-
 io/access_noerrno.c                        |  21 ++
 malloc/Makefile                            |   6 +
 malloc/arena.c                             |  54 ++++
 malloc/malloc.c                            | 126 ++++++---
 malloc/tst-malloc-usable-static-tunables.c |   1 +
 malloc/tst-malloc-usable-static.c          |   1 +
 malloc/tst-malloc-usable-tunables.c        |   1 +
 manual/Makefile                            |   3 +-
 manual/install.texi                        |  21 ++
 manual/probes.texi                         |   2 +-
 manual/tunables.texi                       | 184 ++++++++++++
 scripts/gen-tunables.awk                   | 157 +++++++++++
 sysdeps/mach/hurd/access.c                 |  20 +-
 sysdeps/mach/hurd/dl-sysdep.c              |   8 +
 sysdeps/nacl/access.c                      |  16 +-
 sysdeps/nacl/nacl-interfaces.h             |   4 +
 sysdeps/unix/access_noerrno.c              |  38 +++
 sysdeps/unix/sysv/linux/generic/access.c   |  19 +-
 39 files changed, 1469 insertions(+), 46 deletions(-)
 create mode 100644 README.tunables
 create mode 100644 elf/dl-tunable-types.h
 create mode 100644 elf/dl-tunables.c
 create mode 100644 elf/dl-tunables.h
 create mode 100644 elf/dl-tunables.list
 create mode 100644 io/access_noerrno.c
 create mode 100644 malloc/tst-malloc-usable-static-tunables.c
 create mode 100644 malloc/tst-malloc-usable-static.c
 create mode 100644 malloc/tst-malloc-usable-tunables.c
 create mode 100644 manual/tunables.texi
 create mode 100644 scripts/gen-tunables.awk
 create mode 100644 sysdeps/unix/access_noerrno.c

-- 
2.7.4



More information about the Libc-alpha mailing list