[PATCH 00/33] tcg patch queue, pre-pull

Richard Henderson posted 33 patches 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240128044213.316480-1-richard.henderson@linaro.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Yanan Wang <wangyanan55@huawei.com>, Laurent Vivier <laurent@vivier.eu>, Peter Xu <peterx@redhat.com>, David Hildenbrand <david@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Michael Rolnik <mrolnik@gmail.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Brian Cain <bcain@quicinc.com>, Song Gao <gaosong@loongson.cn>, Aurelien Jarno <aurelien@aurel32.net>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Chris Wulff <crwulff@gmail.com>, Marek Vasut <marex@denx.de>, Stafford Horne <shorne@gmail.com>, Nicholas Piggin <npiggin@gmail.com>, Daniel Henrique Barboza <danielhb413@gmail.com>, "Cédric Le Goater" <clg@kaod.org>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Bin Meng <bin.meng@windriver.com>, Weiwei Li <liwei1518@gmail.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Yoshinori Sato <ysato@users.sourceforge.jp>, Ilya Leoshkevich <iii@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Max Filippov <jcmvbkbc@gmail.com>, "Alex Bennée" <alex.bennee@linaro.org>
accel/tcg/tb-jmp-cache.h                      |   8 +-
accel/tcg/tcg-accel-ops.h                     |   4 +-
include/exec/cpu-all.h                        |  49 ----
include/exec/cpu-common.h                     |  82 ++++++-
include/exec/cpu_ldst.h                       |   4 +-
include/exec/exec-all.h                       |   6 -
include/exec/translation-block.h              |   6 +
include/exec/translator.h                     |   8 +-
include/exec/vaddr.h                          |  18 ++
include/hw/core/cpu.h                         |   7 +-
include/hw/core/tcg-cpu-ops.h                 |  19 +-
include/qemu/typedefs.h                       |   1 +
{accel => include}/tcg/debuginfo.h            |   4 +-
{accel => include}/tcg/perf.h                 |   4 +-
target/alpha/cpu.h                            |  20 --
target/arm/cpu.h                              |  16 --
target/avr/cpu.h                              |  25 --
target/cris/cpu.h                             |  14 --
target/hexagon/cpu.h                          |  21 --
target/hppa/cpu.h                             |  55 -----
target/i386/cpu.h                             |  21 --
target/i386/tcg/helper-tcg.h                  |   2 +
target/loongarch/cpu.h                        |  24 --
target/m68k/cpu.h                             |  20 --
target/microblaze/cpu.h                       |  23 --
target/mips/cpu.h                             |  14 --
target/mips/tcg/translate.h                   |   3 +-
target/nios2/cpu.h                            |  18 --
target/openrisc/cpu.h                         |  22 --
target/ppc/cpu.h                              |  21 --
target/riscv/cpu.h                            |   6 -
target/rx/cpu.h                               |  14 --
target/s390x/cpu.h                            |  55 -----
target/sh4/cpu.h                              |  25 --
target/sparc/cpu.h                            |  61 -----
target/tricore/cpu.h                          |  17 --
target/xtensa/cpu.h                           |  73 ------
accel/tcg/cpu-exec.c                          | 223 ++++++++----------
accel/tcg/tcg-accel-ops-mttcg.c               |   4 +-
accel/tcg/tcg-accel-ops-rr.c                  |   4 +-
accel/tcg/tcg-accel-ops.c                     |   4 +-
accel/tcg/translate-all.c                     |   2 +-
bsd-user/signal.c                             |   4 +-
cpu-target.c                                  |  76 ++++--
hw/core/loader.c                              |   2 +-
linux-user/elfload.c                          |   2 +-
linux-user/exit.c                             |   2 +-
linux-user/main.c                             |   2 +-
linux-user/signal.c                           |   4 +-
system/physmem.c                              |   5 -
system/vl.c                                   |   2 +-
target/alpha/cpu.c                            |  21 +-
target/alpha/translate.c                      |   2 +-
target/arm/cpu.c                              |   7 +-
target/arm/tcg/cpu32.c                        |   2 +-
target/arm/tcg/translate.c                    |   2 +-
target/avr/cpu.c                              |  25 +-
target/avr/translate.c                        |   2 +-
target/cris/cpu.c                             |  18 +-
target/cris/translate.c                       |   2 +-
target/hexagon/cpu.c                          |  23 +-
target/hexagon/translate.c                    |   5 +-
target/hppa/cpu.c                             |  57 ++++-
target/hppa/translate.c                       |   2 +-
target/i386/cpu.c                             |  21 ++
target/i386/tcg/sysemu/seg_helper.c           |  23 ++
target/i386/tcg/tcg-cpu.c                     |   4 +-
target/i386/tcg/translate.c                   |   2 +-
target/loongarch/cpu.c                        |  26 +-
target/loongarch/tcg/translate.c              |   2 +-
target/m68k/cpu.c                             |  23 +-
target/m68k/translate.c                       |   4 +-
target/microblaze/cpu.c                       |  25 +-
target/microblaze/translate.c                 |   2 +-
target/mips/cpu.c                             |  16 +-
target/mips/tcg/translate.c                   |  14 +-
target/nios2/cpu.c                            |  20 +-
target/nios2/translate.c                      |   2 +-
target/openrisc/cpu.c                         |  24 +-
target/openrisc/translate.c                   |   2 +-
target/ppc/cpu.c                              |   9 +
target/ppc/cpu_init.c                         |   2 +-
target/ppc/helper_regs.c                      |  17 +-
target/ppc/translate.c                        |   2 +-
target/riscv/cpu_helper.c                     |   2 +-
target/riscv/tcg/tcg-cpu.c                    |   2 +-
target/riscv/translate.c                      |   2 +-
target/rx/cpu.c                               |  16 +-
target/rx/translate.c                         |   2 +-
target/s390x/cpu.c                            |  55 ++++-
target/s390x/tcg/translate.c                  |   2 +-
target/sh4/cpu.c                              |  30 ++-
target/sh4/translate.c                        |   2 +-
target/sparc/cpu.c                            |  63 ++++-
target/sparc/translate.c                      |   2 +-
target/target-common.c                        |  10 +
target/tricore/cpu.c                          |  19 +-
target/tricore/translate.c                    |   2 +-
target/xtensa/cpu.c                           |  74 +++++-
target/xtensa/translate.c                     |   2 +-
{accel/tcg => tcg}/debuginfo.c                |   3 +-
{accel/tcg => tcg}/perf.c                     |  14 +-
tcg/tcg.c                                     |   2 +-
tests/tcg/multiarch/prot-none.c               |  40 ++++
accel/tcg/meson.build                         |  16 +-
target/meson.build                            |   2 +
tcg/meson.build                               |   5 +
tests/guest-debug/run-test.py                 |   7 +-
tests/guest-debug/test_gdbstub.py             |  56 +++++
tests/tcg/aarch64/gdbstub/test-sve-ioctl.py   |  34 +--
tests/tcg/aarch64/gdbstub/test-sve.py         |  33 +--
tests/tcg/multiarch/Makefile.target           |   9 +-
tests/tcg/multiarch/gdbstub/interrupt.py      |  47 +---
tests/tcg/multiarch/gdbstub/memory.py         |  39 +--
tests/tcg/multiarch/gdbstub/prot-none.py      |  22 ++
tests/tcg/multiarch/gdbstub/registers.py      |  41 +---
tests/tcg/multiarch/gdbstub/sha1.py           |  38 +--
.../multiarch/gdbstub/test-proc-mappings.py   |  39 +--
.../multiarch/gdbstub/test-qxfer-auxv-read.py |  37 +--
.../gdbstub/test-thread-breakpoint.py         |  37 +--
tests/tcg/s390x/gdbstub/test-signals-s390x.py |  42 +---
tests/tcg/s390x/gdbstub/test-svc.py           |  39 +--
122 files changed, 1117 insertions(+), 1304 deletions(-)
create mode 100644 include/exec/vaddr.h
rename {accel => include}/tcg/debuginfo.h (96%)
rename {accel => include}/tcg/perf.h (95%)
create mode 100644 target/target-common.c
rename {accel/tcg => tcg}/debuginfo.c (98%)
rename {accel/tcg => tcg}/perf.c (97%)
create mode 100644 tests/tcg/multiarch/prot-none.c
create mode 100644 tests/guest-debug/test_gdbstub.py
create mode 100644 tests/tcg/multiarch/gdbstub/prot-none.py
[PATCH 00/33] tcg patch queue, pre-pull
Posted by Richard Henderson 10 months ago
Collect some patch sets, cherry-pick from others, with a few
changes of my own.  Patches that lack review:

  26-include-qemu-Add-TCGCPUOps-typedef-to-typedefs.h.patch
  27-target-loongarch-Constify-loongarch_tcg_ops.patch
  28-accel-tcg-Use-CPUState.cc-instead-of-CPU_GET_CLASS-i.patch
  31-accel-tcg-Inline-need_replay_interrupt.patch


r~


Anton Johansson (11):
  include/exec: Move vaddr defines to separate file
  hw/core: Include vaddr.h from cpu.h
  target: Use vaddr in gen_intermediate_code
  include/exec: Use vaddr in DisasContextBase for virtual addresses
  include/exec: typedef abi_ptr to vaddr
  target: Uninline cpu_mmu_index()
  target: Uninline cpu_get_tb_cpu_state()
  include/exec: Move PAGE_* macros to common header
  include/exec: Move cpu_*()/cpu_env() to common header
  include/hw/core: Move do_interrupt in TCGCPUOps
  include/hw/core: Remove i386 conditional on fake_user_interrupt

Ilya Leoshkevich (8):
  linux-user: Allow gdbstub to ignore page protection
  tests/tcg: Factor out gdbstub test functions
  tests/tcg: Add the PROT_NONE gdbstub test
  target: Make qemu_target_page_mask() available for *-user
  accel/tcg: Make use of qemu_target_page_mask() in perf.c
  tcg: Make tb_cflags() usable from target-agnostic code
  accel/tcg: Remove #ifdef TARGET_I386 from perf.c
  accel/tcg: Move perf and debuginfo support to tcg/

Paolo Bonzini (1):
  cpu-exec: simplify jump cache management

Philippe Mathieu-Daudé (9):
  accel/tcg/cpu-exec: Use RCU_READ_LOCK_GUARD
  accel/tcg: Rename tcg_ss[] -> tcg_specific_ss[] in meson
  accel/tcg: Rename tcg_cpus_destroy() -> tcg_cpu_destroy()
  accel/tcg: Rename tcg_cpus_exec() -> tcg_cpu_exec()
  accel/tcg: Un-inline icount_exit_request() for clarity
  accel/tcg: Introduce TCGCPUOps::need_replay_interrupt() handler
  target/i386: Extract x86_need_replay_interrupt() from accel/tcg/
  accel/tcg: Introduce TCGCPUOps::cpu_exec_halt() handler
  target/i386: Extract x86_cpu_exec_halt() from accel/tcg/

Richard Henderson (4):
  include/qemu: Add TCGCPUOps typedef to typedefs.h
  target/loongarch: Constify loongarch_tcg_ops
  accel/tcg: Use CPUState.cc instead of CPU_GET_CLASS in cpu-exec.c
  accel/tcg: Inline need_replay_interrupt

 accel/tcg/tb-jmp-cache.h                      |   8 +-
 accel/tcg/tcg-accel-ops.h                     |   4 +-
 include/exec/cpu-all.h                        |  49 ----
 include/exec/cpu-common.h                     |  82 ++++++-
 include/exec/cpu_ldst.h                       |   4 +-
 include/exec/exec-all.h                       |   6 -
 include/exec/translation-block.h              |   6 +
 include/exec/translator.h                     |   8 +-
 include/exec/vaddr.h                          |  18 ++
 include/hw/core/cpu.h                         |   7 +-
 include/hw/core/tcg-cpu-ops.h                 |  19 +-
 include/qemu/typedefs.h                       |   1 +
 {accel => include}/tcg/debuginfo.h            |   4 +-
 {accel => include}/tcg/perf.h                 |   4 +-
 target/alpha/cpu.h                            |  20 --
 target/arm/cpu.h                              |  16 --
 target/avr/cpu.h                              |  25 --
 target/cris/cpu.h                             |  14 --
 target/hexagon/cpu.h                          |  21 --
 target/hppa/cpu.h                             |  55 -----
 target/i386/cpu.h                             |  21 --
 target/i386/tcg/helper-tcg.h                  |   2 +
 target/loongarch/cpu.h                        |  24 --
 target/m68k/cpu.h                             |  20 --
 target/microblaze/cpu.h                       |  23 --
 target/mips/cpu.h                             |  14 --
 target/mips/tcg/translate.h                   |   3 +-
 target/nios2/cpu.h                            |  18 --
 target/openrisc/cpu.h                         |  22 --
 target/ppc/cpu.h                              |  21 --
 target/riscv/cpu.h                            |   6 -
 target/rx/cpu.h                               |  14 --
 target/s390x/cpu.h                            |  55 -----
 target/sh4/cpu.h                              |  25 --
 target/sparc/cpu.h                            |  61 -----
 target/tricore/cpu.h                          |  17 --
 target/xtensa/cpu.h                           |  73 ------
 accel/tcg/cpu-exec.c                          | 223 ++++++++----------
 accel/tcg/tcg-accel-ops-mttcg.c               |   4 +-
 accel/tcg/tcg-accel-ops-rr.c                  |   4 +-
 accel/tcg/tcg-accel-ops.c                     |   4 +-
 accel/tcg/translate-all.c                     |   2 +-
 bsd-user/signal.c                             |   4 +-
 cpu-target.c                                  |  76 ++++--
 hw/core/loader.c                              |   2 +-
 linux-user/elfload.c                          |   2 +-
 linux-user/exit.c                             |   2 +-
 linux-user/main.c                             |   2 +-
 linux-user/signal.c                           |   4 +-
 system/physmem.c                              |   5 -
 system/vl.c                                   |   2 +-
 target/alpha/cpu.c                            |  21 +-
 target/alpha/translate.c                      |   2 +-
 target/arm/cpu.c                              |   7 +-
 target/arm/tcg/cpu32.c                        |   2 +-
 target/arm/tcg/translate.c                    |   2 +-
 target/avr/cpu.c                              |  25 +-
 target/avr/translate.c                        |   2 +-
 target/cris/cpu.c                             |  18 +-
 target/cris/translate.c                       |   2 +-
 target/hexagon/cpu.c                          |  23 +-
 target/hexagon/translate.c                    |   5 +-
 target/hppa/cpu.c                             |  57 ++++-
 target/hppa/translate.c                       |   2 +-
 target/i386/cpu.c                             |  21 ++
 target/i386/tcg/sysemu/seg_helper.c           |  23 ++
 target/i386/tcg/tcg-cpu.c                     |   4 +-
 target/i386/tcg/translate.c                   |   2 +-
 target/loongarch/cpu.c                        |  26 +-
 target/loongarch/tcg/translate.c              |   2 +-
 target/m68k/cpu.c                             |  23 +-
 target/m68k/translate.c                       |   4 +-
 target/microblaze/cpu.c                       |  25 +-
 target/microblaze/translate.c                 |   2 +-
 target/mips/cpu.c                             |  16 +-
 target/mips/tcg/translate.c                   |  14 +-
 target/nios2/cpu.c                            |  20 +-
 target/nios2/translate.c                      |   2 +-
 target/openrisc/cpu.c                         |  24 +-
 target/openrisc/translate.c                   |   2 +-
 target/ppc/cpu.c                              |   9 +
 target/ppc/cpu_init.c                         |   2 +-
 target/ppc/helper_regs.c                      |  17 +-
 target/ppc/translate.c                        |   2 +-
 target/riscv/cpu_helper.c                     |   2 +-
 target/riscv/tcg/tcg-cpu.c                    |   2 +-
 target/riscv/translate.c                      |   2 +-
 target/rx/cpu.c                               |  16 +-
 target/rx/translate.c                         |   2 +-
 target/s390x/cpu.c                            |  55 ++++-
 target/s390x/tcg/translate.c                  |   2 +-
 target/sh4/cpu.c                              |  30 ++-
 target/sh4/translate.c                        |   2 +-
 target/sparc/cpu.c                            |  63 ++++-
 target/sparc/translate.c                      |   2 +-
 target/target-common.c                        |  10 +
 target/tricore/cpu.c                          |  19 +-
 target/tricore/translate.c                    |   2 +-
 target/xtensa/cpu.c                           |  74 +++++-
 target/xtensa/translate.c                     |   2 +-
 {accel/tcg => tcg}/debuginfo.c                |   3 +-
 {accel/tcg => tcg}/perf.c                     |  14 +-
 tcg/tcg.c                                     |   2 +-
 tests/tcg/multiarch/prot-none.c               |  40 ++++
 accel/tcg/meson.build                         |  16 +-
 target/meson.build                            |   2 +
 tcg/meson.build                               |   5 +
 tests/guest-debug/run-test.py                 |   7 +-
 tests/guest-debug/test_gdbstub.py             |  56 +++++
 tests/tcg/aarch64/gdbstub/test-sve-ioctl.py   |  34 +--
 tests/tcg/aarch64/gdbstub/test-sve.py         |  33 +--
 tests/tcg/multiarch/Makefile.target           |   9 +-
 tests/tcg/multiarch/gdbstub/interrupt.py      |  47 +---
 tests/tcg/multiarch/gdbstub/memory.py         |  39 +--
 tests/tcg/multiarch/gdbstub/prot-none.py      |  22 ++
 tests/tcg/multiarch/gdbstub/registers.py      |  41 +---
 tests/tcg/multiarch/gdbstub/sha1.py           |  38 +--
 .../multiarch/gdbstub/test-proc-mappings.py   |  39 +--
 .../multiarch/gdbstub/test-qxfer-auxv-read.py |  37 +--
 .../gdbstub/test-thread-breakpoint.py         |  37 +--
 tests/tcg/s390x/gdbstub/test-signals-s390x.py |  42 +---
 tests/tcg/s390x/gdbstub/test-svc.py           |  39 +--
 122 files changed, 1117 insertions(+), 1304 deletions(-)
 create mode 100644 include/exec/vaddr.h
 rename {accel => include}/tcg/debuginfo.h (96%)
 rename {accel => include}/tcg/perf.h (95%)
 create mode 100644 target/target-common.c
 rename {accel/tcg => tcg}/debuginfo.c (98%)
 rename {accel/tcg => tcg}/perf.c (97%)
 create mode 100644 tests/tcg/multiarch/prot-none.c
 create mode 100644 tests/guest-debug/test_gdbstub.py
 create mode 100644 tests/tcg/multiarch/gdbstub/prot-none.py

-- 
2.34.1


Re: [PATCH 00/33] tcg patch queue, pre-pull
Posted by Philippe Mathieu-Daudé 10 months ago
On 28/1/24 05:41, Richard Henderson wrote:
> Collect some patch sets, cherry-pick from others, with a few
> changes of my own.  Patches that lack review:
> 
>    26-include-qemu-Add-TCGCPUOps-typedef-to-typedefs.h.patch
>    27-target-loongarch-Constify-loongarch_tcg_ops.patch
>    28-accel-tcg-Use-CPUState.cc-instead-of-CPU_GET_CLASS-i.patch
>    31-accel-tcg-Inline-need_replay_interrupt.patch
> 
> 
> r~
> 
> 
> Anton Johansson (11):
>    include/exec: Move vaddr defines to separate file
>    hw/core: Include vaddr.h from cpu.h
>    target: Use vaddr in gen_intermediate_code
>    include/exec: Use vaddr in DisasContextBase for virtual addresses
>    include/exec: typedef abi_ptr to vaddr
>    target: Uninline cpu_mmu_index()
>    target: Uninline cpu_get_tb_cpu_state()
>    include/exec: Move PAGE_* macros to common header
>    include/exec: Move cpu_*()/cpu_env() to common header
>    include/hw/core: Move do_interrupt in TCGCPUOps
>    include/hw/core: Remove i386 conditional on fake_user_interrupt

Nitpick: preferably s/^include\// in subject :)
Re: [PATCH 00/33] tcg patch queue, pre-pull
Posted by Richard Henderson 10 months ago
On 1/28/24 14:41, Richard Henderson wrote:
>    target: Uninline cpu_mmu_index()
>    target: Uninline cpu_get_tb_cpu_state()

Dropping these two for now.  The cpu_get_tb_cpu_state patch fails s390x --disable-tcg. 
Both changes will be re-worked to introduce TCGCPUOps hooks immediately.


r~
Re: [PATCH 00/33] tcg patch queue, pre-pull
Posted by Philippe Mathieu-Daudé 10 months ago
On 28/1/24 07:30, Richard Henderson wrote:
> On 1/28/24 14:41, Richard Henderson wrote:
>>    target: Uninline cpu_mmu_index()
>>    target: Uninline cpu_get_tb_cpu_state()
> 
> Dropping these two for now.

Good news! (for me at least)