[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