glibc/sysdeps/unix
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
..
alpha Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
arm Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
bsd Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
i386 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
inet Remove obsolete, never-implemented XSI STREAMS declarations 2019-03-14 15:44:15 +01:00
mips Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
powerpc Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sh Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sysv/linux x86-64: Add glibc.cpu.prefer_map_32bit_exec [BZ #28656] 2023-02-22 18:28:37 -08:00
x86_64 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getlogin_r.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
grantpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ifreq.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
Implies
make-syscalls.sh Add SYSCALL_ULONG_ARG_[12] to pass long to syscall [BZ #25810] 2020-04-29 05:35:34 -07:00
Makefile Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
setxid.h
sockatmark.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
syscall-template.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 misc: Add time64 alias for ioctl 2021-07-21 11:58:09 +02:00
sysdep.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00