[PULL 00/13] accel/tcg: Rewrite user-only vma tracking

Richard Henderson posted 13 patches 1 year, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221216185305.3429913-1-richard.henderson@linaro.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Riku Voipio <riku.voipio@iki.fi>, "Alex Bennée" <alex.bennee@linaro.org>, Stefan Hajnoczi <stefanha@redhat.com>
There is a newer version of this series
accel/tcg/internal.h            |  83 +---
include/exec/exec-all.h         |  43 +-
include/exec/translate-all.h    |   6 -
include/qemu/interval-tree.h    |  99 ++++
accel/tcg/cputlb.c              |   7 +-
accel/tcg/tb-maint.c            | 994 ++++++++++++++++++++++++++++++----------
accel/tcg/translate-all.c       | 746 ------------------------------
accel/tcg/user-exec.c           | 658 +++++++++++++++++++++++++-
tests/tcg/multiarch/test-vma.c  |  22 +
tests/unit/test-interval-tree.c | 209 +++++++++
util/interval-tree.c            | 882 +++++++++++++++++++++++++++++++++++
accel/tcg/trace-events          |   4 +
tests/unit/meson.build          |   1 +
trace-events                    |   4 -
util/meson.build                |   1 +
15 files changed, 2662 insertions(+), 1097 deletions(-)
create mode 100644 include/qemu/interval-tree.h
create mode 100644 tests/tcg/multiarch/test-vma.c
create mode 100644 tests/unit/test-interval-tree.c
create mode 100644 util/interval-tree.c
[PULL 00/13] accel/tcg: Rewrite user-only vma tracking
Posted by Richard Henderson 1 year, 4 months ago
The following changes since commit 4208e6ae114ac8266dcacc9696a443ce5c37b04e:

  Merge tag 'pull-request-2022-12-15' of https://gitlab.com/thuth/qemu into staging (2022-12-15 21:39:56 +0000)

are available in the Git repository at:

  https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20221216

for you to fetch changes up to a9d0226381d6d70a9c1901ad1480961c93de8b8d:

  accel/tcg: Restrict page_collection structure to system TB maintainance (2022-12-16 10:09:51 -0800)

----------------------------------------------------------------
Use interval trees for user-only vma mappings.
Assorted cleanups to page locking.

----------------------------------------------------------------
Philippe Mathieu-Daudé (5):
      accel/tcg: Restrict cpu_io_recompile() to system emulation
      accel/tcg: Remove trace events from trace-root.h
      accel/tcg: Rename tb_invalidate_phys_page_fast{,__locked}()
      accel/tcg: Factor tb_invalidate_phys_range_fast() out
      accel/tcg: Restrict page_collection structure to system TB maintainance

Richard Henderson (8):
      util: Add interval-tree.c
      accel/tcg: Rename page_flush_tb
      accel/tcg: Use interval tree for TBs in user-only mode
      accel/tcg: Use interval tree for TARGET_PAGE_DATA_SIZE
      accel/tcg: Move page_{get,set}_flags to user-exec.c
      accel/tcg: Use interval tree for user-only page tracking
      accel/tcg: Move PageDesc tree into tb-maint.c for system
      accel/tcg: Move remainder of page locking to tb-maint.c

 accel/tcg/internal.h            |  83 +---
 include/exec/exec-all.h         |  43 +-
 include/exec/translate-all.h    |   6 -
 include/qemu/interval-tree.h    |  99 ++++
 accel/tcg/cputlb.c              |   7 +-
 accel/tcg/tb-maint.c            | 994 ++++++++++++++++++++++++++++++----------
 accel/tcg/translate-all.c       | 746 ------------------------------
 accel/tcg/user-exec.c           | 658 +++++++++++++++++++++++++-
 tests/tcg/multiarch/test-vma.c  |  22 +
 tests/unit/test-interval-tree.c | 209 +++++++++
 util/interval-tree.c            | 882 +++++++++++++++++++++++++++++++++++
 accel/tcg/trace-events          |   4 +
 tests/unit/meson.build          |   1 +
 trace-events                    |   4 -
 util/meson.build                |   1 +
 15 files changed, 2662 insertions(+), 1097 deletions(-)
 create mode 100644 include/qemu/interval-tree.h
 create mode 100644 tests/tcg/multiarch/test-vma.c
 create mode 100644 tests/unit/test-interval-tree.c
 create mode 100644 util/interval-tree.c

Re: [PULL 00/13] accel/tcg: Rewrite user-only vma tracking
Posted by Peter Maydell 1 year, 4 months ago
On Fri, 16 Dec 2022 at 18:53, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The following changes since commit 4208e6ae114ac8266dcacc9696a443ce5c37b04e:
>
>   Merge tag 'pull-request-2022-12-15' of https://gitlab.com/thuth/qemu into staging (2022-12-15 21:39:56 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20221216
>
> for you to fetch changes up to a9d0226381d6d70a9c1901ad1480961c93de8b8d:
>
>   accel/tcg: Restrict page_collection structure to system TB maintainance (2022-12-16 10:09:51 -0800)
>
> ----------------------------------------------------------------
> Use interval trees for user-only vma mappings.
> Assorted cleanups to page locking.
>

This failed to build for bsd-user:
https://gitlab.com/qemu-project/qemu/-/jobs/3489233570

../accel/tcg/translate-all.c:287:24: error: 'L1_MAP_ADDR_SPACE_BITS'
is not defined, evaluates to 0 [-Werror,-Wundef]
#if TARGET_ABI_BITS <= L1_MAP_ADDR_SPACE_BITS
                       ^

thanks
-- PMM