qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: mjt@tls.msk.ru, laurent@vivier.eu
Subject: [PATCH for-8.1? 00/24] linux-user: mmap range fixes
Date: Fri, 30 Jun 2023 15:21:35 +0200	[thread overview]
Message-ID: <20230630132159.376995-1-richard.henderson@linaro.org> (raw)

Supercedes: 20230629080835.71371-1-richard.henderson@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



             reply	other threads:[~2023-06-30 13:24 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-30 13:21 Richard Henderson [this message]
2023-06-30 13:21 ` [PATCH 01/24] linux-user: Use assert in mmap_fork_start Richard Henderson
2023-07-03  8:47   ` Alex Bennée
2023-07-03 15:56   ` Philippe Mathieu-Daudé
2023-06-30 13:21 ` [PATCH 02/24] linux-user: Fix formatting of mmap.c Richard Henderson
2023-07-03  8:48   ` Alex Bennée
2023-07-03 15:55   ` Philippe Mathieu-Daudé
2023-06-30 13:21 ` [PATCH 03/24] linux-user/strace: Expand struct flags to hold a mask Richard Henderson
2023-07-03  9:24   ` Alex Bennée
2023-06-30 13:21 ` [PATCH 04/24] linux-user: Split TARGET_MAP_* out of syscall_defs.h Richard Henderson
2023-07-03  9:25   ` Alex Bennée
2023-06-30 13:21 ` [PATCH 05/24] linux-user: Split TARGET_PROT_* " Richard Henderson
2023-07-03  9:32   ` Alex Bennée
2023-07-03 16:02   ` Philippe Mathieu-Daudé
2023-06-30 13:21 ` [PATCH 06/24] linux-user: Populate more bits in mmap_flags_tbl Richard Henderson
2023-07-03  9:42   ` Alex Bennée
2023-06-30 13:21 ` [PATCH 07/24] accel/tcg: Introduce page_check_range_empty Richard Henderson
2023-07-03  9:45   ` Alex Bennée
2023-07-03 10:33     ` Richard Henderson
2023-07-03 11:36       ` Alex Bennée
2023-06-30 13:21 ` [PATCH 08/24] bsd-user: Use page_check_range_empty for MAP_EXCL Richard Henderson
2023-06-30 18:46   ` Warner Losh
2023-06-30 19:40     ` Richard Henderson
2023-06-30 13:21 ` [PATCH 09/24] linux-user: Implement MAP_FIXED_NOREPLACE Richard Henderson
2023-07-03  9:51   ` Alex Bennée
2023-07-03 10:39     ` Richard Henderson
2023-06-30 13:21 ` [PATCH 10/24] linux-user: Split out target_to_host_prot Richard Henderson
2023-07-03 10:12   ` Alex Bennée
2023-06-30 13:21 ` [PATCH 11/24] linux-user: Widen target_mmap offset argument to off_t Richard Henderson
2023-07-03 10:47   ` Alex Bennée
2023-06-30 13:21 ` [PATCH 12/24] linux-user: Rewrite target_mprotect Richard Henderson
2023-06-30 13:21 ` [PATCH 13/24] linux-user: Rewrite mmap_frag Richard Henderson
2023-06-30 13:21 ` [PATCH 14/24] accel/tcg: Introduce page_find_range_empty Richard Henderson
2023-06-30 13:21 ` [PATCH 15/24] bsd-user: Use page_find_range_empty for mmap_find_vma_reserved Richard Henderson
2023-06-30 13:21 ` [PATCH 16/24] linux-user: " Richard Henderson
2023-06-30 13:21 ` [PATCH 17/24] linux-user: Use 'last' instead of 'end' in target_mmap Richard Henderson
2023-06-30 13:21 ` [PATCH 18/24] linux-user: Rewrite mmap_reserve Richard Henderson
2023-06-30 13:21 ` [PATCH 19/24] linux-user: Rename mmap_reserve to mmap_reserve_or_unmap Richard Henderson
2023-06-30 13:21 ` [PATCH 20/24] linux-user: Simplify target_munmap Richard Henderson
2023-06-30 13:21 ` [PATCH 21/24] accel/tcg: Accept more page flags in page_check_range Richard Henderson
2023-06-30 13:21 ` [PATCH 22/24] accel/tcg: Return bool from page_check_range Richard Henderson
2023-06-30 13:21 ` [PATCH 23/24] linux-user: Remove can_passthrough_madvise Richard Henderson
2023-06-30 13:21 ` [PATCH 24/24] linux-user: Simplify target_madvise Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230630132159.376995-1-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=laurent@vivier.eu \
    --cc=mjt@tls.msk.ru \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).