glibc/sysdeps/unix/sysv/linux/x86_64
H.J. Lu 317f1c0a8a x86-64: Add glibc.cpu.prefer_map_32bit_exec [BZ #28656]
Crossing 2GB boundaries with indirect calls and jumps can use more
branch prediction resources on Intel Golden Cove CPU (see the
"Misprediction for Branches >2GB" section in Intel 64 and IA-32
Architectures Optimization Reference Manual.)  There is visible
performance improvement on workloads with many PLT calls when executable
and shared libraries are mmapped below 2GB.  Add the Prefer_MAP_32BIT_EXEC
bit so that mmap will try to map executable or denywrite pages in shared
libraries with MAP_32BIT first.

NB: Prefer_MAP_32BIT_EXEC reduces bits available for address space
layout randomization (ASLR), which is always disabled for SUID programs
and can only be enabled by the tunable, glibc.cpu.prefer_map_32bit_exec,
or the environment variable, LD_PREFER_MAP_32BIT_EXEC.  This works only
between shared libraries or between shared libraries and executables with
addresses below 2GB.  PIEs are usually loaded at a random address above
4GB by the kernel.
2023-02-22 18:28:37 -08:00
..
64 x86-64: Add glibc.cpu.prefer_map_32bit_exec [BZ #28656] 2023-02-22 18:28:37 -08:00
x32 C2x strtol binary constant handling 2023-02-16 23:02:40 +00:00
Implies
Makefile
Versions
____longjmp_chk.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__start_context.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
clone.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
clone3.S Linux: Do not align the stack for __clone3 2023-02-01 08:42:11 -03:00
configure
configure.ac
dl-cache.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dl-procinfo.c
dl-procinfo.h
getcontext.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ldd-rewrite.sed
libc_sigaction.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libmvec.abilist
makecontext.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
pointer_guard.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
setcontext.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sigaltstack-offsets.sym
sigcontextinfo.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
single-thread.h
swapcontext.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
syscall.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
syscalls.list
sysdep.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-glibc-hwcaps-2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ucontext_i.sym
vfork.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
x86-64-isa-level-VALUE.c