mbox

[PULL,00/38] Exec / accelerators patches

Message ID 20240426194200.43723-1-philmd@linaro.org
State New
Headers show

Pull-request

https://github.com/philmd/qemu.git tags/accel-20240426

Message

Philippe Mathieu-Daudé April 26, 2024, 7:41 p.m. UTC
The following changes since commit a118c4aff4087eafb68f7132b233ad548cf16376:

  Merge tag 'hw-misc-20240425' of https://github.com/philmd/qemu into staging (2024-04-25 09:43:29 -0700)

are available in the Git repository at:

  https://github.com/philmd/qemu.git tags/accel-20240426

for you to fetch changes up to 671558d290ffb93752d3245e7c5604b04b6dcdf2:

  plugins: Include missing 'qemu/bitmap.h' header (2024-04-26 21:36:19 +0200)

Selfish PR, painfully tested commit by commit.
----------------------------------------------------------------
Accelerators patches

A lot of trivial cleanups and simplifications (moving methods around,
adding/removing #include statements). Most notable changes:

- Rename NEED_CPU_H -> COMPILING_PER_TARGET
- Rename few template headers using the '.h.inc' suffix
- Extract some definitions / declarations into their own header:
  - accel/tcg/user-retaddr.h (helper_retaddr)
  - include/exec/abi_ptr.h (abi_ptr)
  - include/exec/breakpoint.h (CPUBreakpoint, CPUWatchpoint)
  - include/exec/mmu-access-type.h (MMUAccessType)
  - include/user/tswap-target.h (tswapl, bswaptls)

----------------------------------------------------------------

Philippe Mathieu-Daudé (38):
  exec: Rename NEED_CPU_H -> COMPILING_PER_TARGET
  exec: Reduce tlb_set_dirty() declaration scope
  exec: Include 'cpu.h' before validating CPUArchState placement
  exec: Expose 'target_page.h' API to user emulation
  accel: Include missing 'exec/cpu_ldst.h' header
  gdbstub: Include missing 'hw/core/cpu.h' header
  gdbstub: Simplify #ifdef'ry in helpers.h
  gdbstub: Avoid including 'cpu.h' in 'gdbstub/helpers.h'
  semihosting/uaccess: Avoid including 'cpu.h'
  semihosting/guestfd: Remove unused 'semihosting/uaccess.h' header
  target: Define TCG_GUEST_DEFAULT_MO in 'cpu-param.h'
  target/ppc/excp_helper: Avoid 'abi_ptr' in system emulation
  target/sparc: Replace abi_ulong by uint32_t for TARGET_ABI32
  target/i386: Include missing 'exec/exec-all.h' header
  accel/tcg: Un-inline retaddr helpers to 'user-retaddr.h'
  accel/tcg: Include missing 'hw/core/cpu.h' header
  accel/tcg: Include missing headers in 'tb-jmp-cache.h'
  accel/tcg: Rename load-extract/store-insert headers using .h.inc
    suffix
  accel/tcg: Rename helper-head.h -> helper-head.h.inc
  accel/whpx: Use accel-specific per-vcpu @dirty field
  accel/nvmm: Use accel-specific per-vcpu @dirty field
  accel/hvf: Use accel-specific per-vcpu @dirty field
  exec/cpu-all: Reduce 'qemu/rcu.h' header inclusion
  exec/cpu-all: Remove unused 'qemu/thread.h' header
  exec/cpu-all: Remove unused tswapls() definitions
  exec: Declare target_words_bigendian() in 'exec/tswap.h'
  exec: Move [b]tswapl() declarations to 'exec/user/tswap-target.h'
  exec/user: Do not include 'cpu.h' in 'abitypes.h'
  exec: Declare abi_ptr type in its own 'abi_ptr.h' header
  exec: Declare MMUAccessType type in 'mmu-access-type.h' header
  exec: Declare CPUBreakpoint/CPUWatchpoint type in 'breakpoint.h'
    header
  exec: Restrict TCG specific declarations of 'cputlb.h'
  exec: Restrict 'cpu_ldst.h' to TCG accelerator
  exec: Rename 'exec/user/guest-base.h' as 'user/guest-base.h'
  exec: Restrict inclusion of 'user/guest-base.h'
  exec: Move CPUTLBEntry helpers to cputlb.c
  hw/core: Avoid including the full 'hw/core/cpu.h' in 'tcg-cpu-ops.h'
  plugins: Include missing 'qemu/bitmap.h' header

 MAINTAINERS                                   |   1 +
 meson.build                                   |   6 +-
 accel/tcg/tb-jmp-cache.h                      |   3 +
 accel/tcg/user-retaddr.h                      |  28 +++++
 bsd-user/freebsd/target_os_elf.h              |   1 +
 bsd-user/freebsd/target_os_stack.h            |   1 +
 bsd-user/netbsd/target_os_elf.h               |   1 +
 bsd-user/openbsd/target_os_elf.h              |   1 +
 include/exec/abi_ptr.h                        |  33 ++++++
 include/exec/breakpoint.h                     |  30 +++++
 include/exec/cpu-all.h                        |  16 +--
 include/exec/cpu-defs.h                       |   2 +-
 include/exec/cpu_ldst.h                       | 105 ++----------------
 include/exec/cputlb.h                         |   5 +
 include/exec/exec-all.h                       |   3 +-
 include/exec/memop.h                          |   4 +-
 include/exec/memory.h                         |   4 +-
 include/exec/mmu-access-type.h                |  18 +++
 include/exec/ram_addr.h                       |   1 +
 include/exec/translator.h                     |   5 +-
 include/exec/tswap.h                          |  16 ++-
 include/exec/user/abitypes.h                  |   8 +-
 include/exec/user/guest-base.h                |  12 --
 include/gdbstub/helpers.h                     |  12 +-
 include/hw/core/cpu.h                         |  42 +------
 include/hw/core/tcg-cpu-ops.h                 |   6 +-
 include/qemu/osdep.h                          |   2 +-
 include/qemu/plugin.h                         |   1 +
 include/semihosting/uaccess.h                 |   4 +-
 include/sysemu/hvf.h                          |   8 +-
 include/sysemu/hvf_int.h                      |   1 +
 include/sysemu/kvm.h                          |   6 +-
 include/sysemu/nvmm.h                         |   4 +-
 include/sysemu/whpx.h                         |   4 +-
 include/sysemu/xen.h                          |   4 +-
 include/user/guest-base.h                     |  18 +++
 include/user/tswap-target.h                   |  22 ++++
 target/alpha/cpu-param.h                      |   3 +
 target/alpha/cpu.h                            |   3 -
 target/arm/cpu-param.h                        |   8 +-
 target/arm/cpu.h                              |   3 -
 target/arm/internals.h                        |   1 +
 target/arm/kvm-consts.h                       |   4 +-
 target/avr/cpu-param.h                        |   2 +
 target/avr/cpu.h                              |   2 -
 target/hppa/cpu-param.h                       |   8 ++
 target/hppa/cpu.h                             |   6 -
 target/i386/cpu-param.h                       |   3 +
 target/i386/cpu.h                             |   3 -
 target/loongarch/cpu-param.h                  |   2 +
 target/loongarch/cpu.h                        |   2 -
 target/microblaze/cpu-param.h                 |   3 +
 target/microblaze/cpu.h                       |   3 -
 target/mips/cpu-param.h                       |   2 +
 target/mips/cpu.h                             |   2 -
 target/openrisc/cpu-param.h                   |   2 +
 target/openrisc/cpu.h                         |   2 -
 target/ppc/cpu-param.h                        |   2 +
 target/ppc/cpu.h                              |   2 -
 target/ppc/internal.h                         |   1 +
 target/riscv/cpu-param.h                      |   2 +
 target/riscv/cpu.h                            |   2 -
 target/riscv/debug.h                          |   2 +
 target/s390x/cpu-param.h                      |   6 +
 target/s390x/cpu.h                            |   3 -
 target/sparc/cpu-param.h                      |  23 ++++
 target/sparc/cpu.h                            |  23 ----
 target/xtensa/cpu-param.h                     |   3 +
 target/xtensa/cpu.h                           |   3 -
 ...al16-al8.h => load-extract-al16-al8.h.inc} |   0
 ...-insert-al16.h => store-insert-al16.h.inc} |   0
 ...al16-al8.h => load-extract-al16-al8.h.inc} |   0
 ...-insert-al16.h => store-insert-al16.h.inc} |   0
 ...al16-al8.h => load-extract-al16-al8.h.inc} |   0
 ...-insert-al16.h => store-insert-al16.h.inc} |   0
 ...al16-al8.h => load-extract-al16-al8.h.inc} |   0
 include/exec/helper-gen.h.inc                 |   2 +-
 .../exec/{helper-head.h => helper-head.h.inc} |   4 +-
 include/exec/helper-proto.h.inc               |   2 +-
 accel/hvf/hvf-accel-ops.c                     |  10 +-
 accel/stubs/tcg-stub.c                        |   4 -
 accel/tcg/cpu-exec.c                          |   3 +
 accel/tcg/cputlb.c                            |  53 ++++++++-
 accel/tcg/tcg-accel-ops.c                     |   2 +
 accel/tcg/translator.c                        |   1 +
 accel/tcg/user-exec.c                         |   1 +
 bsd-user/main.c                               |   1 +
 bsd-user/signal.c                             |   1 +
 bsd-user/strace.c                             |   1 +
 cpu-target.c                                  |   1 +
 disas/disas.c                                 |   1 +
 gdbstub/gdbstub.c                             |   1 +
 hw/audio/virtio-snd.c                         |   2 +-
 hw/core/cpu-sysemu.c                          |   2 +-
 hw/core/generic-loader.c                      |   2 +-
 hw/display/vga.c                              |   2 +-
 hw/virtio/virtio.c                            |   1 +
 linux-user/elfload.c                          |   2 +
 linux-user/i386/signal.c                      |   1 +
 linux-user/main.c                             |   1 +
 linux-user/ppc/signal.c                       |   1 +
 page-target.c                                 |  44 ++++++++
 semihosting/guestfd.c                         |   5 +-
 system/physmem.c                              |  30 -----
 target/arm/hvf/hvf.c                          |   4 +-
 target/avr/gdbstub.c                          |   1 +
 target/hexagon/translate.c                    |   1 +
 target/i386/hvf/hvf.c                         |   4 +-
 target/i386/hvf/x86hvf.c                      |   2 +-
 target/i386/nvmm/nvmm-all.c                   |  21 ++--
 target/i386/tcg/fpu_helper.c                  |   1 +
 target/i386/whpx/whpx-all.c                   |  23 ++--
 target/microblaze/cpu.c                       |   1 +
 target/microblaze/translate.c                 |   1 +
 target/ppc/excp_helper.c                      |   2 +-
 target/sparc/gdbstub.c                        |   2 +-
 target/target-common.c                        |  10 --
 target/tricore/gdbstub.c                      |   1 +
 tcg/tcg.c                                     |   2 +-
 accel/tcg/ldst_atomicity.c.inc                |   4 +-
 include/exec/helper-info.c.inc                |   2 +-
 scripts/analyze-inclusions                    |   6 +-
 target/meson.build                            |   2 -
 123 files changed, 488 insertions(+), 357 deletions(-)
 create mode 100644 accel/tcg/user-retaddr.h
 create mode 100644 include/exec/abi_ptr.h
 create mode 100644 include/exec/breakpoint.h
 create mode 100644 include/exec/mmu-access-type.h
 delete mode 100644 include/exec/user/guest-base.h
 create mode 100644 include/user/guest-base.h
 create mode 100644 include/user/tswap-target.h
 rename host/include/aarch64/host/{load-extract-al16-al8.h => load-extract-al16-al8.h.inc} (100%)
 rename host/include/aarch64/host/{store-insert-al16.h => store-insert-al16.h.inc} (100%)
 rename host/include/generic/host/{load-extract-al16-al8.h => load-extract-al16-al8.h.inc} (100%)
 rename host/include/generic/host/{store-insert-al16.h => store-insert-al16.h.inc} (100%)
 rename host/include/loongarch64/host/{load-extract-al16-al8.h => load-extract-al16-al8.h.inc} (100%)
 rename host/include/loongarch64/host/{store-insert-al16.h => store-insert-al16.h.inc} (100%)
 rename host/include/x86_64/host/{load-extract-al16-al8.h => load-extract-al16-al8.h.inc} (100%)
 rename include/exec/{helper-head.h => helper-head.h.inc} (98%)
 create mode 100644 page-target.c
 delete mode 100644 target/target-common.c

Comments

Richard Henderson April 27, 2024, 2:47 p.m. UTC | #1
On 4/26/24 12:41, Philippe Mathieu-Daudé wrote:
> The following changes since commit a118c4aff4087eafb68f7132b233ad548cf16376:
> 
>    Merge tag 'hw-misc-20240425' ofhttps://github.com/philmd/qemu  into staging (2024-04-25 09:43:29 -0700)
> 
> are available in the Git repository at:
> 
>    https://github.com/philmd/qemu.git  tags/accel-20240426
> 
> for you to fetch changes up to 671558d290ffb93752d3245e7c5604b04b6dcdf2:
> 
>    plugins: Include missing 'qemu/bitmap.h' header (2024-04-26 21:36:19 +0200)
> 
> Selfish PR, painfully tested commit by commit.
> ----------------------------------------------------------------
> Accelerators patches
> 
> A lot of trivial cleanups and simplifications (moving methods around,
> adding/removing #include statements). Most notable changes:
> 
> - Rename NEED_CPU_H -> COMPILING_PER_TARGET
> - Rename few template headers using the '.h.inc' suffix
> - Extract some definitions / declarations into their own header:
>    - accel/tcg/user-retaddr.h (helper_retaddr)
>    - include/exec/abi_ptr.h (abi_ptr)
>    - include/exec/breakpoint.h (CPUBreakpoint, CPUWatchpoint)
>    - include/exec/mmu-access-type.h (MMUAccessType)
>    - include/user/tswap-target.h (tswapl, bswaptls)

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/9.1 as appropriate.


r~