[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/27] maintainer updates for 9.0 pre-PR (tests, plugin regist
From: |
Alex Bennée |
Subject: |
[PATCH v2 00/27] maintainer updates for 9.0 pre-PR (tests, plugin register support) |
Date: |
Fri, 23 Feb 2024 16:21:35 +0000 |
The test patch is a simple house keeping one to clean up some
inadvertent GPLv3 tagging to GPLv2-or-later. I've also increased the
timeout for check-tcg due to TCI timesouts.
The main bulk of this series is register reading support for TCG
plugins. The main change to the API is that the get/read_register
functions are now implicitly vCPU context only so have dropped the
vcpu index parameter and use current_cpu instead. This avoids the need
for locking the gdbstub structures in case there is a cross-vCPU
access.
I've pulled in some patches from Pierrick's inline enhancement series
that allow this to happen (making sure the init callback is in the
vCPU context).
Changes for v2:
After lots of back and forth in the last review I've dropped trying to
be clever with CPUClass as it was pointed out even with a common
CPUClass we might see different sets of registers depending on what
features are enabled on a CPU. Now I just have a hash per CPUState
(stored in the new CPUPluginState structure) with a simple reg_num key.
I also fixed a bug in nios2-linux-user.
The following still need review:
contrib/plugins: extend execlog to track register changes
tests/tcg: expand insn test case to exercise register API
plugins: create CPUPluginState and migrate plugin_mask
gdbstub: expose api to find registers
linux-user: ensure nios2 processes queued work
tests/tcg: bump TCG test timeout to 120s
But I'd like to get this merged soon so its not a mad rush before soft
freeze and so we can get the new inline support stabilised and merged.
Alex.
Akihiko Odaki (11):
target/arm: Use GDBFeature for dynamic XML
target/ppc: Use GDBFeature for dynamic XML
target/riscv: Use GDBFeature for dynamic XML
gdbstub: Use GDBFeature for gdb_register_coprocessor
gdbstub: Use GDBFeature for GDBRegisterState
gdbstub: Change gdb_get_reg_cb and gdb_set_reg_cb
gdbstub: Simplify XML lookup
gdbstub: Infer number of core registers from XML
hw/core/cpu: Remove gdb_get_dynamic_xml member
gdbstub: Add members to identify registers to GDBFeature
plugins: Use different helpers when reading registers
Alex Bennée (11):
tests/tcg: update licenses to GPLv2 as intended
tests/tcg: bump TCG test timeout to 120s
linux-user: ensure nios2 processes queued work
gdbstub: expose api to find registers
plugins: create CPUPluginState and migrate plugin_mask
plugins: add an API to read registers
tests/tcg: expand insn test case to exercise register API
contrib/plugins: fix imatch
contrib/plugins: extend execlog to track register changes
docs/devel: lift example and plugin API sections up
docs/devel: document some plugin assumptions
Pierrick Bouvier (5):
plugins: remove previous n_vcpus functions from API
plugins: add qemu_plugin_num_vcpus function
plugins: fix order of init/idle/resume callback
cpu: call plugin init hook asynchronously
docs/devel: plugins can trigger a tb flush
docs/devel/multi-thread-tcg.rst | 1 +
docs/devel/tcg-plugins.rst | 72 +++-
accel/tcg/plugin-helpers.h | 3 +-
include/exec/gdbstub.h | 43 ++-
include/hw/core/cpu.h | 18 +-
include/qemu/plugin.h | 16 +
include/qemu/qemu-plugin.h | 59 +++-
include/qemu/typedefs.h | 1 +
plugins/plugin.h | 6 +-
target/arm/cpu.h | 27 +-
target/arm/internals.h | 14 +-
target/hexagon/internal.h | 4 +-
target/microblaze/cpu.h | 4 +-
target/ppc/cpu-qom.h | 1 +
target/ppc/cpu.h | 5 +-
target/riscv/cpu.h | 5 +-
target/s390x/cpu.h | 2 -
tests/tcg/aarch64/semicall.h | 4 +-
tests/tcg/arm/semicall.h | 4 +-
tests/tcg/multiarch/float_helpers.h | 4 +-
tests/tcg/riscv64/semicall.h | 4 +-
accel/tcg/plugin-gen.c | 46 ++-
contrib/plugins/cache.c | 2 +-
contrib/plugins/execlog.c | 318 +++++++++++++++---
gdbstub/gdbstub.c | 169 ++++++----
hw/core/cpu-common.c | 15 +-
linux-user/nios2/cpu_loop.c | 1 +
plugins/api.c | 129 +++++--
plugins/core.c | 27 +-
target/arm/cpu.c | 2 -
target/arm/cpu64.c | 1 -
target/arm/gdbstub.c | 230 ++++++-------
target/arm/gdbstub64.c | 122 +++----
target/avr/cpu.c | 1 -
target/hexagon/cpu.c | 4 +-
target/hexagon/gdbstub.c | 10 +-
target/i386/cpu.c | 2 -
target/loongarch/cpu.c | 2 -
target/loongarch/gdbstub.c | 13 +-
target/m68k/cpu.c | 1 -
target/m68k/helper.c | 26 +-
target/microblaze/cpu.c | 6 +-
target/microblaze/gdbstub.c | 14 +-
target/ppc/cpu_init.c | 7 -
target/ppc/gdbstub.c | 114 ++++---
target/riscv/cpu.c | 15 -
target/riscv/gdbstub.c | 145 ++++----
target/rx/cpu.c | 1 -
target/s390x/cpu.c | 1 -
target/s390x/gdbstub.c | 105 +++---
tests/plugin/insn.c | 21 ++
.../multiarch/arm-compat-semi/semiconsole.c | 4 +-
.../multiarch/arm-compat-semi/semihosting.c | 4 +-
tests/tcg/multiarch/float_convd.c | 4 +-
tests/tcg/multiarch/float_convs.c | 4 +-
tests/tcg/multiarch/float_madds.c | 4 +-
tests/tcg/multiarch/libs/float_helpers.c | 4 +-
plugins/qemu-plugins.symbols | 5 +-
scripts/feature_to_c.py | 14 +-
tests/tcg/Makefile.target | 9 +-
tests/tcg/i386/system/boot.S | 6 +-
tests/tcg/x86_64/system/boot.S | 6 +-
62 files changed, 1257 insertions(+), 654 deletions(-)
--
2.39.2
- [PATCH v2 00/27] maintainer updates for 9.0 pre-PR (tests, plugin register support),
Alex Bennée <=
- [PATCH v2 03/27] target/arm: Use GDBFeature for dynamic XML, Alex Bennée, 2024/02/23
- [PATCH v2 06/27] gdbstub: Use GDBFeature for gdb_register_coprocessor, Alex Bennée, 2024/02/23
- [PATCH v2 09/27] gdbstub: Simplify XML lookup, Alex Bennée, 2024/02/23
- [PATCH v2 15/27] plugins: fix order of init/idle/resume callback, Alex Bennée, 2024/02/23
- [PATCH v2 22/27] tests/tcg: expand insn test case to exercise register API, Alex Bennée, 2024/02/23
- [PATCH v2 21/27] plugins: add an API to read registers, Alex Bennée, 2024/02/23
- [PATCH v2 25/27] docs/devel: lift example and plugin API sections up, Alex Bennée, 2024/02/23