Message ID | 20230801232745.4125-1-deller@gmx.de |
---|---|
Headers | show |
Series | linux-user: brk fixes | expand |
On Tue, 1 Aug 2023 at 23:28, Helge Deller <deller@gmx.de> wrote: > > This patch series is a fix-up for some current problems > regarding heap memory / brk handling in qemu which happens > on some 32-bit platforms, e.g. problems loading static > binaries. > > This series includes the 5 patches from Akihiko Odaki > with some additional fixes and cleanups by me. This has the same segfault as the branch that I previously tested, when running on a ppc64le host.. As a reminder, the ppc64le machine (normally, and does in this case) uses a 64K page size. I think this is a detail that is missing from your chroot testing. > > Akihiko Odaki (5): > linux-user: Unset MAP_FIXED_NOREPLACE for host > linux-user: Do not call get_errno() in do_brk() > linux-user: Use MAP_FIXED_NOREPLACE for do_brk() > linux-user: Do nothing if too small brk is specified > linux-user: Do not align brk with host page size > > Helge Deller (3): > linux-user: Show heap address in /proc/pid/maps > linux-user: Optimize memory layout for static and dynamic executables > linux-user: Load pie executables at upper memory > > include/exec/cpu_ldst.h | 4 +-- > linux-user/elfload.c | 59 ++++++++++-------------------- > linux-user/loader.h | 12 +++++++ > linux-user/main.c | 2 ++ > linux-user/mmap.c | 35 ++++++++++-------- > linux-user/qemu.h | 4 +-- > linux-user/syscall.c | 80 ++++++++++++----------------------------- > 7 files changed, 79 insertions(+), 117 deletions(-) > > -- > 2.41.0 >
* Joel Stanley <joel@jms.id.au>: > On Tue, 1 Aug 2023 at 23:28, Helge Deller <deller@gmx.de> wrote: > > > > This patch series is a fix-up for some current problems > > regarding heap memory / brk handling in qemu which happens > > on some 32-bit platforms, e.g. problems loading static > > binaries. > > > > This series includes the 5 patches from Akihiko Odaki > > with some additional fixes and cleanups by me. > > This has the same segfault as the branch that I previously tested, > when running on a ppc64le host.. > > As a reminder, the ppc64le machine (normally, and does in this case) > uses a 64K page size. I think this is a detail that is missing from > your chroot testing. Could you try with this hunk on top of the patch series ? Helge diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 8f5a79b537..a61e3d1080 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3178,7 +3178,7 @@ static void load_elf_image(const char *image_name, int image_fd, info->start_data = -1; info->end_data = 0; /* possible start for brk is behind all sections of this ELF file. */ - info->brk = TARGET_PAGE_ALIGN(load_offset + hiaddr); + info->brk = HOST_PAGE_ALIGN(load_offset + hiaddr); info->elf_flags = ehdr->e_flags; prot_exec = PROT_EXEC;