Hi, Here is the current state of my maintainer trees. Testing I've updated a number of the docker containers to deal with breakages in the crossdev environments as bullseye moves to LTS. I've dropped the armel environment which doesn't really add much to the armhf cross build we have that works. i686 and mipsel cross containers are bumped up to bookworm. Currently mips64el is still broken. gdbstub This brings in Gustavo's patches to support MTE for system mode expanding on the previously implemented user mode support. plugins I start by deprecating some options that don't make much sense for instrumentation including 32 bit and TCI support. They will still work but there are caveats and it doesn't seem worth wasting CI time keeping track of them. There are a couple of new plugins including some useful analysis ones. The bbv plugin can generate files that can be fed into simpoint. The cflow plugin I've posted before separately but takes advantage of the new conditional and store helpers to try and be more efficient tracing control flow. Finally there is not one but two memory APIs. Pierrick's updates to the main memory instrumentation now makes values available to the plugins and should be used if you absolutely want to track what value was read or stored. I've added a softmmu test case building on memory.c and I'll merge the updated linux-user test case once its been re-spun. Rowan's API provides a more direct access through the existing debug API but comes with the caveats that it should only used on memory you don't expect to be changing. The example provided allows for the contents of syscalls to be probed at the syscall point. Finally there is a RFC for a gdbstub hook which I mostly wrote while I was debugging weirdness in the memory stuff. I'll probably drop it before the PR and let it cook a bit more on plugins/next. The following still need review: plugins: add ability to register a GDB triggered callback util/timer: avoid deadlock when shutting down tests/tcg: add a system test to check memory instrumentation tests/tcg: only read/write 64 bit words on 64 bit systems tests/tcg: clean up output of memory system test contrib/plugins: control flow plugin deprecation: don't enable TCG plugins by default with TCI deprecation: don't enable TCG plugins by default on 32 bit hosts scripts/ci: update the gitlab-runner playbook docs/devel: fix duplicate line tests/docker: update debian i686 and mipsel images to bookworm tests/docker: remove debian-armel-cross Akihiko Odaki (1): contrib/plugins: Add a plugin to generate basic block vectors Alex Bennée (12): tests/docker: remove debian-armel-cross tests/docker: update debian i686 and mipsel images to bookworm docs/devel: fix duplicate line scripts/ci: update the gitlab-runner playbook deprecation: don't enable TCG plugins by default on 32 bit hosts deprecation: don't enable TCG plugins by default with TCI contrib/plugins: control flow plugin tests/tcg: clean up output of memory system test tests/tcg: only read/write 64 bit words on 64 bit systems tests/tcg: add a system test to check memory instrumentation util/timer: avoid deadlock when shutting down plugins: add ability to register a GDB triggered callback Gustavo Romero (5): gdbstub: Use specific MMU index when probing MTE addresses gdbstub: Add support for MTE in system mode tests/guest-debug: Support passing arguments to the GDB test script tests/tcg/aarch64: Improve linker script organization tests/tcg/aarch64: Extend MTE gdbstub tests to system mode Pierrick Bouvier (5): plugins: save value during memory accesses plugins: extend API to get latest memory value accessed tests/tcg: add mechanism to run specific tests with plugins tests/tcg: allow to check output of plugins tests/plugin/mem: add option to print memory accesses Rowan Hart (2): plugins: add plugin API to read guest memory plugins: add option to dump write argument to syscall plugin Thomas Huth (1): contrib/plugins/Makefile: Add a 'distclean' target docs/about/deprecated.rst | 19 + docs/about/emulation.rst | 44 +- docs/devel/testing/main.rst | 6 - configure | 37 +- accel/tcg/atomic_template.h | 66 ++- include/hw/core/cpu.h | 4 + include/qemu/plugin-event.h | 1 + include/qemu/plugin.h | 4 + include/qemu/qemu-plugin.h | 80 +++- plugins/plugin.h | 9 + contrib/plugins/bbv.c | 158 +++++++ contrib/plugins/cflow.c | 413 ++++++++++++++++++ plugins/api.c | 71 +++ plugins/core.c | 43 ++ target/arm/gdbstub64.c | 21 +- tcg/tcg-op-ldst.c | 66 ++- tests/tcg/multiarch/system/memory.c | 123 ++++-- tests/tcg/plugins/mem.c | 254 ++++++++++- tests/tcg/plugins/syscall.c | 117 +++++ util/qemu-timer.c | 14 +- accel/tcg/atomic_common.c.inc | 13 +- accel/tcg/ldst_common.c.inc | 38 +- .gitlab-ci.d/buildtest.yml | 2 + .gitlab-ci.d/container-cross.yml | 6 - .gitlab-ci.d/crossbuilds.yml | 7 - contrib/plugins/Makefile | 4 +- plugins/qemu-plugins.symbols | 3 + scripts/ci/setup/gitlab-runner.yml | 39 +- .../dockerfiles/debian-armel-cross.docker | 179 -------- .../dockerfiles/debian-i686-cross.docker | 10 +- .../dockerfiles/debian-mipsel-cross.docker | 10 +- tests/guest-debug/run-test.py | 6 + tests/guest-debug/test_gdbstub.py | 5 + tests/lcitool/refresh | 10 +- tests/tcg/Makefile.target | 12 +- tests/tcg/aarch64/Makefile.softmmu-target | 49 ++- tests/tcg/aarch64/Makefile.target | 3 +- tests/tcg/aarch64/gdbstub/test-mte.py | 71 ++- tests/tcg/aarch64/system/boot.S | 11 + tests/tcg/aarch64/system/kernel.ld | 33 +- tests/tcg/aarch64/system/mte.S | 109 +++++ tests/tcg/alpha/Makefile.softmmu-target | 2 +- .../multiarch/system/Makefile.softmmu-target | 6 + .../system/validate-memory-counts.py | 115 +++++ 44 files changed, 1935 insertions(+), 358 deletions(-) create mode 100644 contrib/plugins/bbv.c create mode 100644 contrib/plugins/cflow.c delete mode 100644 tests/docker/dockerfiles/debian-armel-cross.docker create mode 100644 tests/tcg/aarch64/system/mte.S create mode 100755 tests/tcg/multiarch/system/validate-memory-counts.py -- 2.39.2