qemu/linux-user
Alex Bennée 11d3672788 linux-user: expand reserved brk space for 64bit guests
A recent change to fix commpage allocation issues on 32bit hosts
revealed another intermittent issue on s390x. The root cause was the
headroom we give for the brk space wasn't enough causing the guest to
attempt to map something on top of QEMUs own pages. We do not
currently do anything to protect from this (see #555).

By inspection the brk mmap moves around and top of the address range
has been measured as far as 19Mb away from the top of the binary. As
we chose a smallish number to keep 32bit on 32 bit feasible we only
increase the gap for 64 bit guests. This does mean that 64-on-32
static binaries are more likely to fail to find a hole in the address
space but that is hopefully a fairly rare situation.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20220113165550.4184455-1-alex.bennee@linaro.org>
2022-01-18 16:44:05 +00:00
..
aarch64 linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
alpha linux-user/alpha: Use force_sig_fault 2022-01-11 18:40:43 +01:00
arm linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
cris linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
generic linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
hexagon linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
hppa linux-user/hppa: Set FPE_CONDTRAP for COND 2022-01-11 18:40:43 +01:00
i386 linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
include user: move common-user includes to a subdirectory of {bsd,linux}-user/ 2022-01-12 14:08:29 +01:00
m68k linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
microblaze linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
mips target/mips: Extract trap code into env->error_code 2022-01-11 18:40:44 +01:00
mips64 linux-user: Split out do_prctl and subroutines 2022-01-06 11:40:52 +01:00
nios2 linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
openrisc linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
ppc linux-user/ppc: Use force_sig_fault 2022-01-11 18:40:44 +01:00
riscv linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
s390x linux-user/s390x: Use force_sig_fault 2022-01-11 18:40:44 +01:00
sh4 linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
sparc linux-user/sparc: Use force_sig_fault 2022-01-11 18:40:44 +01:00
x86_64 linux-user: Move target_struct.h generic definitions to generic/ 2022-01-11 18:40:44 +01:00
xtensa linux-user/xtensa: Use force_sig_fault 2022-01-11 18:40:44 +01:00
cpu_loop-common.h linux-user: Create special-errno.h 2021-12-19 20:47:33 -08:00
elfload.c linux-user: expand reserved brk space for 64bit guests 2022-01-18 16:44:05 +00:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.c linux-user: netlink: update IFLA_BRPORT entries 2022-01-06 11:40:53 +01:00
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 2021-07-12 21:54:46 +02:00
flat.h linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ioctls.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linux_loop.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linuxload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c Pull request linux-user 20210916 2021-09-16 21:09:18 +01:00
meson.build user: move common-user includes to a subdirectory of {bsd,linux}-user/ 2022-01-12 14:08:29 +01:00
mmap.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
qemu.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
semihost.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
signal-common.h linux-user: Create special-errno.h 2021-12-19 20:47:33 -08:00
signal.c linux-user/nios2: Use set_sigmask in do_rt_sigreturn 2022-01-06 11:40:52 +01:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
strace.h linux-user: Split strace prototypes into strace.h 2021-09-13 20:35:44 +02:00
strace.list linux-user: Add copy_file_range to strace.list 2021-05-18 07:09:58 +02:00
syscall.c linux-user: Implement capability prctls 2022-01-11 18:40:44 +01:00
syscall_defs.h linux-user/hppa: Set FPE_CONDTRAP for COND 2022-01-11 18:40:43 +01:00
syscall_types.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
target_flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
thunk.c linux-user: Move thunk.c from top-level 2021-12-20 10:12:29 -08:00
trace-events linux-user/trace-events: fix minor typo in format string 2021-06-17 16:09:11 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
user-internals.h linux-user: Mark cpu_loop() with noreturn attribute 2022-01-06 11:40:52 +01:00
user-mmap.h linux-user: Split mmap prototypes into user-mmap.h 2021-09-13 20:35:45 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00