Supercedes: 20230629080835.71371-1-richard.hender...@linaro.org While the above should make its way back into 8.0.N, we can do better than simply avoiding the last page for automatically placed pages. After this patch set, nothing in linux-user/mmap.c uses "end".
In the process, this fixes a couple of inefficiencies, where we were probing pages one by one instead of walking the interval tree. This also passes MJT's hppa fenics-basix test case. r~ Richard Henderson (24): linux-user: Use assert in mmap_fork_start linux-user: Fix formatting of mmap.c linux-user/strace: Expand struct flags to hold a mask linux-user: Split TARGET_MAP_* out of syscall_defs.h linux-user: Split TARGET_PROT_* out of syscall_defs.h linux-user: Populate more bits in mmap_flags_tbl accel/tcg: Introduce page_check_range_empty bsd-user: Use page_check_range_empty for MAP_EXCL linux-user: Implement MAP_FIXED_NOREPLACE linux-user: Split out target_to_host_prot linux-user: Widen target_mmap offset argument to off_t linux-user: Rewrite target_mprotect linux-user: Rewrite mmap_frag accel/tcg: Introduce page_find_range_empty bsd-user: Use page_find_range_empty for mmap_find_vma_reserved linux-user: Use page_find_range_empty for mmap_find_vma_reserved linux-user: Use 'last' instead of 'end' in target_mmap linux-user: Rewrite mmap_reserve linux-user: Rename mmap_reserve to mmap_reserve_or_unmap linux-user: Simplify target_munmap accel/tcg: Accept more page flags in page_check_range accel/tcg: Return bool from page_check_range linux-user: Remove can_passthrough_madvise linux-user: Simplify target_madvise bsd-user/qemu.h | 2 +- include/exec/cpu-all.h | 39 +- linux-user/aarch64/target_mman.h | 3 + linux-user/alpha/target_mman.h | 13 + linux-user/generic/target_mman.h | 58 +++ linux-user/hppa/target_mman.h | 10 + linux-user/mips/target_mman.h | 13 + linux-user/mips64/target_mman.h | 2 +- linux-user/ppc/target_mman.h | 3 + linux-user/qemu.h | 2 +- linux-user/sparc/target_mman.h | 4 + linux-user/syscall_defs.h | 96 +---- linux-user/user-mmap.h | 2 +- linux-user/xtensa/target_mman.h | 13 + accel/tcg/user-exec.c | 72 +++- bsd-user/mmap.c | 49 +-- linux-user/mmap.c | 702 ++++++++++++++++--------------- linux-user/strace.c | 61 +-- linux-user/syscall.c | 22 +- target/hppa/op_helper.c | 2 +- target/riscv/vector_helper.c | 2 +- target/sparc/ldst_helper.c | 2 +- accel/tcg/ldst_atomicity.c.inc | 4 +- 23 files changed, 638 insertions(+), 538 deletions(-) -- 2.34.1