]> sourceware.org Git - glibc.git/commit
elf: Avoid unnecessary slowdown from profiling with audit (BZ#15533)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 30 Jun 2021 13:24:09 +0000 (10:24 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 28 Dec 2021 11:40:38 +0000 (08:40 -0300)
commit063f9ba220f434c7f30dd65c4cff17c0c458a7cf
tree00737e23f3b48e8d8dd338f16fc8cb98f0e6c051
parent8c0664e2b861fd3789602cc0b0b1922b0e20cb3a
elf: Avoid unnecessary slowdown from profiling with audit (BZ#15533)

The rtld-audit interfaces introduces a slowdown due to enabling
profiling instrumentation (as if LD_AUDIT implied LD_PROFILE).
However, instrumenting is only necessary if one of audit libraries
provides PLT callbacks (la_pltenter or la_pltexit symbols).  Otherwise,
the slowdown can be avoided.

The following patch adjusts the logic that enables profiling to iterate
over all audit modules and check if any of those provides a PLT hook.
To keep la_symbind to work even without PLT callbacks, _dl_fixup now
calls the audit callback if the modules implements it.

Co-authored-by: Alexander Monakov <amonakov@ispras.ru>
Checked on x86_64-linux-gnu, i686-linux-gnu, and aarch64-linux-gnu.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
NEWS
elf/Makefile
elf/dl-reloc.c
elf/dl-runtime.c
elf/rtld.c
elf/tst-audit19a.c [new file with mode: 0644]
elf/tst-audit19b.c [new file with mode: 0644]
elf/tst-audit19bmod.c [new file with mode: 0644]
elf/tst-auditmod19a.c [new file with mode: 0644]
elf/tst-auditmod19b.c [new file with mode: 0644]
include/link.h
This page took 0.044444 seconds and 5 git commands to generate.