qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/27] maintainer updates for 9.0 pre-PR (tests, plugin register support)
@ 2024-02-23 16:21 Alex Bennée
  2024-02-23 16:21 ` [PATCH v2 01/27] tests/tcg: update licenses to GPLv2 as intended Alex Bennée
                   ` (26 more replies)
  0 siblings, 27 replies; 34+ messages in thread
From: Alex Bennée @ 2024-02-23 16:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Song Gao, qemu-s390x, Liu Zhiwei, Pierrick Bouvier, Thomas Huth,
	Daniel Henrique Barboza, Bin Meng, Yanan Wang, Laurent Vivier,
	qemu-ppc, David Hildenbrand, Cédric Le Goater,
	Ilya Leoshkevich, Cleber Rosa, Nicholas Piggin, Marcel Apfelbaum,
	Eduardo Habkost, Richard Henderson, Philippe Mathieu-Daudé,
	Alexandre Iooss, Peter Maydell, Alex Bennée,
	Daniel Henrique Barboza, qemu-arm, qemu-riscv, Palmer Dabbelt,
	Mahmoud Mandour, John Snow, Weiwei Li, Alistair Francis,
	Yoshinori Sato, Brian Cain, Paolo Bonzini, Edgar E. Iglesias,
	Michael Rolnik

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



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2024-02-26 12:23 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-23 16:21 [PATCH v2 00/27] maintainer updates for 9.0 pre-PR (tests, plugin register support) Alex Bennée
2024-02-23 16:21 ` [PATCH v2 01/27] tests/tcg: update licenses to GPLv2 as intended Alex Bennée
2024-02-23 16:21 ` [PATCH v2 02/27] tests/tcg: bump TCG test timeout to 120s Alex Bennée
2024-02-23 19:17   ` Thomas Huth
2024-02-23 16:21 ` [PATCH v2 03/27] target/arm: Use GDBFeature for dynamic XML Alex Bennée
2024-02-23 16:21 ` [PATCH v2 04/27] target/ppc: " Alex Bennée
2024-02-23 16:21 ` [PATCH v2 05/27] target/riscv: " Alex Bennée
2024-02-23 16:21 ` [PATCH v2 06/27] gdbstub: Use GDBFeature for gdb_register_coprocessor Alex Bennée
2024-02-23 16:21 ` [PATCH v2 07/27] gdbstub: Use GDBFeature for GDBRegisterState Alex Bennée
2024-02-23 16:21 ` [PATCH v2 08/27] gdbstub: Change gdb_get_reg_cb and gdb_set_reg_cb Alex Bennée
2024-02-23 16:21 ` [PATCH v2 09/27] gdbstub: Simplify XML lookup Alex Bennée
2024-02-23 16:21 ` [PATCH v2 10/27] gdbstub: Infer number of core registers from XML Alex Bennée
2024-02-23 16:21 ` [PATCH v2 11/27] hw/core/cpu: Remove gdb_get_dynamic_xml member Alex Bennée
2024-02-23 16:21 ` [PATCH v2 12/27] gdbstub: Add members to identify registers to GDBFeature Alex Bennée
2024-02-23 16:21 ` [PATCH v2 13/27] plugins: remove previous n_vcpus functions from API Alex Bennée
2024-02-23 16:21 ` [PATCH v2 14/27] plugins: add qemu_plugin_num_vcpus function Alex Bennée
2024-02-23 16:21 ` [PATCH v2 15/27] plugins: fix order of init/idle/resume callback Alex Bennée
2024-02-23 16:21 ` [PATCH v2 16/27] linux-user: ensure nios2 processes queued work Alex Bennée
2024-02-23 16:21 ` [PATCH v2 17/27] cpu: call plugin init hook asynchronously Alex Bennée
2024-02-23 16:21 ` [PATCH v2 18/27] plugins: Use different helpers when reading registers Alex Bennée
2024-02-23 16:21 ` [PATCH v2 19/27] gdbstub: expose api to find registers Alex Bennée
2024-02-23 16:21 ` [PATCH v2 20/27] plugins: create CPUPluginState and migrate plugin_mask Alex Bennée
2024-02-26  7:33   ` Pierrick Bouvier
2024-02-23 16:21 ` [PATCH v2 21/27] plugins: add an API to read registers Alex Bennée
2024-02-24  8:34   ` Akihiko Odaki
2024-02-26 11:12     ` Alex Bennée
2024-02-26 12:22       ` Akihiko Odaki
2024-02-23 16:21 ` [PATCH v2 22/27] tests/tcg: expand insn test case to exercise register API Alex Bennée
2024-02-23 16:21 ` [PATCH v2 23/27] contrib/plugins: fix imatch Alex Bennée
2024-02-23 16:21 ` [PATCH v2 24/27] contrib/plugins: extend execlog to track register changes Alex Bennée
2024-02-26  7:30   ` Pierrick Bouvier
2024-02-23 16:22 ` [PATCH v2 25/27] docs/devel: lift example and plugin API sections up Alex Bennée
2024-02-23 16:22 ` [PATCH v2 26/27] docs/devel: document some plugin assumptions Alex Bennée
2024-02-23 16:22 ` [PATCH v2 27/27] docs/devel: plugins can trigger a tb flush Alex Bennée

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).