All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-8.1 v10 00/14] linux-user: image mapping fixes
@ 2023-08-07 16:36 Richard Henderson
  2023-08-07 16:36 ` [PATCH for-8.1 v10 01/14] linux-user: Adjust task_unmapped_base for reserved_va Richard Henderson
                   ` (14 more replies)
  0 siblings, 15 replies; 45+ messages in thread
From: Richard Henderson @ 2023-08-07 16:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, philmd, laurent, deller

This is the second half of

https://patchew.org/QEMU/20230804220032.295411-1-richard.henderson@linaro.org/

which I held back because of regressions with s390x testing.

It turns out that patch 4, "Use MAP_FIXED_NOREPLACE for initial image mmap"
actually triggered EEXIST, which meant that probe_guest_base did not
do its job to select unused host virtual memory.  It's a mystery why
we have not seen larger problems because of this.

As I kept digging, I found quite a number of problems within
probe_guest_base and its subroutines.  I have rewritten it completely.
Hopefully it is much easier to understand in its new form.

Testing this has been difficult, because it is most visible with
non-PIE executables, and most modern distros default to PIE, and
our current implementation of --disable-pie does not work.


r~


Helge Deller (1):
  linux-user: Adjust initial brk when interpreter is close to executable

Richard Henderson (13):
  linux-user: Adjust task_unmapped_base for reserved_va
  linux-user: Define TASK_UNMAPPED_BASE in $guest/target_mman.h
  linux-user: Define ELF_ET_DYN_BASE in $guest/target_mman.h
  linux-user: Use MAP_FIXED_NOREPLACE for initial image mmap
  linux-user: Use elf_et_dyn_base for ET_DYN with interpreter
  linux-user: Do not adjust image mapping for host page size
  linux-user: Do not adjust zero_bss for host page size
  linux-user: Use zero_bss for PT_LOAD with no file contents too
  util/selfmap: Rewrite using qemu/interval-tree.h
  linux-user: Remove duplicate CPU_LOG_PAGE from probe_guest_base
  linux-user: Consolidate guest bounds check in probe_guest_base
  linux-user: Rewrite fixed probe_guest_base
  linux-user: Rewrite non-fixed probe_guest_base

 include/qemu/selfmap.h               |  20 +-
 linux-user/aarch64/target_mman.h     |  13 +
 linux-user/alpha/target_mman.h       |  11 +
 linux-user/arm/target_mman.h         |  11 +
 linux-user/cris/target_mman.h        |  12 +
 linux-user/hexagon/target_mman.h     |  13 +
 linux-user/hppa/target_mman.h        |   6 +
 linux-user/i386/target_mman.h        |  16 +
 linux-user/loongarch64/target_mman.h |  11 +
 linux-user/m68k/target_mman.h        |   5 +
 linux-user/microblaze/target_mman.h  |  11 +
 linux-user/mips/target_mman.h        |  10 +
 linux-user/nios2/target_mman.h       |  10 +
 linux-user/openrisc/target_mman.h    |  10 +
 linux-user/ppc/target_mman.h         |  20 +
 linux-user/qemu.h                    |   1 -
 linux-user/riscv/target_mman.h       |  10 +
 linux-user/s390x/target_mman.h       |  20 +
 linux-user/sh4/target_mman.h         |   7 +
 linux-user/sparc/target_mman.h       |  25 +
 linux-user/user-mmap.h               |   5 +-
 linux-user/x86_64/target_mman.h      |  15 +
 linux-user/xtensa/target_mman.h      |  10 +
 linux-user/elfload.c                 | 788 +++++++++++++--------------
 linux-user/main.c                    |  43 ++
 linux-user/mmap.c                    |  19 +-
 linux-user/syscall.c                 |  15 +-
 util/selfmap.c                       | 114 ++--
 28 files changed, 777 insertions(+), 474 deletions(-)

-- 
2.34.1



^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2023-08-10 22:07 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-07 16:36 [PATCH for-8.1 v10 00/14] linux-user: image mapping fixes Richard Henderson
2023-08-07 16:36 ` [PATCH for-8.1 v10 01/14] linux-user: Adjust task_unmapped_base for reserved_va Richard Henderson
2023-08-08  9:10   ` Alex Bennée
2023-08-08 15:16     ` Richard Henderson
2023-08-08 16:59       ` Alex Bennée
2023-08-08 17:40         ` Richard Henderson
2023-08-08 15:35   ` Helge Deller
2023-08-07 16:36 ` [PATCH for-8.1 v10 02/14] linux-user: Define TASK_UNMAPPED_BASE in $guest/target_mman.h Richard Henderson
2023-08-08  9:19   ` Alex Bennée
2023-08-07 16:36 ` [PATCH for-8.1 v10 03/14] linux-user: Define ELF_ET_DYN_BASE " Richard Henderson
2023-08-07 16:36 ` [PATCH for-8.1 v10 04/14] linux-user: Use MAP_FIXED_NOREPLACE for initial image mmap Richard Henderson
2023-08-08  9:43   ` Alex Bennée
2023-08-08 11:57     ` Akihiko Odaki
2023-08-08 13:48       ` Alex Bennée
2023-08-08 14:08         ` Akihiko Odaki
2023-08-08 14:20           ` Alex Bennée
2023-08-07 16:36 ` [PATCH for-8.1 v10 05/14] linux-user: Use elf_et_dyn_base for ET_DYN with interpreter Richard Henderson
2023-08-08  9:49   ` Alex Bennée
2023-08-07 16:36 ` [PATCH for-8.1 v10 06/14] linux-user: Adjust initial brk when interpreter is close to executable Richard Henderson
2023-08-08 10:54   ` Alex Bennée
2023-08-07 16:36 ` [PATCH for-8.1 v10 07/14] linux-user: Do not adjust image mapping for host page size Richard Henderson
2023-08-08 10:59   ` Alex Bennée
2023-08-07 16:36 ` [PATCH for-8.1 v10 08/14] linux-user: Do not adjust zero_bss " Richard Henderson
2023-08-08 11:38   ` Alex Bennée
2023-08-08 15:56     ` Richard Henderson
2023-08-07 16:37 ` [PATCH for-8.1 v10 09/14] linux-user: Use zero_bss for PT_LOAD with no file contents too Richard Henderson
2023-08-08 11:43   ` Alex Bennée
2023-08-07 16:37 ` [PATCH for-8.1 v10 10/14] util/selfmap: Rewrite using qemu/interval-tree.h Richard Henderson
2023-08-07 18:17   ` Richard Henderson
2023-08-09 15:11     ` Fix interval_tree_iter_first() to check root node value Helge Deller
2023-08-09 15:23       ` Richard Henderson
2023-08-09 15:53         ` Helge Deller
2023-08-09 16:33           ` Richard Henderson
2023-08-10 21:31     ` [PATCH for-8.1 v10 10/14] util/selfmap: Rewrite using qemu/interval-tree.h Ilya Leoshkevich
2023-08-10 22:06       ` Helge Deller
2023-08-08  6:15   ` Michael Tokarev
2023-08-07 16:37 ` [PATCH for-8.1 v10 11/14] linux-user: Remove duplicate CPU_LOG_PAGE from probe_guest_base Richard Henderson
2023-08-08 11:45   ` Alex Bennée
2023-08-07 16:37 ` [PATCH for-8.1 v10 12/14] linux-user: Consolidate guest bounds check in probe_guest_base Richard Henderson
2023-08-08 11:46   ` Alex Bennée
2023-08-07 16:37 ` [PATCH for-8.1 v10 13/14] linux-user: Rewrite fixed probe_guest_base Richard Henderson
2023-08-08 16:39   ` Alex Bennée
2023-08-07 16:37 ` [PATCH for-8.1 v10 14/14] linux-user: Rewrite non-fixed probe_guest_base Richard Henderson
2023-08-08 16:58   ` Alex Bennée
2023-08-08 17:00 ` [PATCH for-8.1 v10 00/14] linux-user: image mapping fixes Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.