From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <eduardo@habkost.net>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Beraldo Leal" <bleal@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Alexandre Iooss" <erdnaxe@crans.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Mahmoud Mandour" <ma.mandourr@gmail.com>,
"Thomas Huth" <thuth@redhat.com>,
qemu-arm@nongnu.org, devel@lists.libvirt.org,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>
Subject: [PATCH 00/26] Maintainer updates (testing, gdbstub, plugins)
Date: Tue, 10 Sep 2024 15:07:07 +0100 [thread overview]
Message-ID: <20240910140733.4007719-1-alex.bennee@linaro.org> (raw)
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
next reply other threads:[~2024-09-10 14:09 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-10 14:07 Alex Bennée [this message]
2024-09-10 14:07 ` [PATCH 01/26] tests/docker: remove debian-armel-cross Alex Bennée
2024-09-10 14:42 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 02/26] tests/docker: update debian i686 and mipsel images to bookworm Alex Bennée
2024-09-10 14:42 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 03/26] docs/devel: fix duplicate line Alex Bennée
2024-09-10 14:42 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 04/26] scripts/ci: update the gitlab-runner playbook Alex Bennée
2024-09-10 14:43 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 05/26] gdbstub: Use specific MMU index when probing MTE addresses Alex Bennée
2024-09-10 14:07 ` [PATCH 06/26] gdbstub: Add support for MTE in system mode Alex Bennée
2024-09-10 14:07 ` [PATCH 07/26] tests/guest-debug: Support passing arguments to the GDB test script Alex Bennée
2024-09-10 14:07 ` [PATCH 08/26] tests/tcg/aarch64: Improve linker script organization Alex Bennée
2024-09-10 14:07 ` [PATCH 09/26] tests/tcg/aarch64: Extend MTE gdbstub tests to system mode Alex Bennée
2024-09-10 14:07 ` [PATCH 10/26] contrib/plugins/Makefile: Add a 'distclean' target Alex Bennée
2024-09-10 14:07 ` [PATCH 11/26] deprecation: don't enable TCG plugins by default on 32 bit hosts Alex Bennée
2024-09-10 14:45 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 12/26] deprecation: don't enable TCG plugins by default with TCI Alex Bennée
2024-09-10 14:45 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 13/26] contrib/plugins: control flow plugin Alex Bennée
2024-09-10 14:52 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 14/26] plugins: save value during memory accesses Alex Bennée
2024-09-10 14:07 ` [PATCH 15/26] plugins: extend API to get latest memory value accessed Alex Bennée
2024-09-10 14:07 ` [PATCH 16/26] tests/tcg: add mechanism to run specific tests with plugins Alex Bennée
2024-09-10 14:07 ` [PATCH 17/26] tests/tcg: allow to check output of plugins Alex Bennée
2024-09-10 14:07 ` [PATCH 18/26] tests/plugin/mem: add option to print memory accesses Alex Bennée
2024-09-10 14:07 ` [PATCH 19/26] tests/tcg: clean up output of memory system test Alex Bennée
2024-09-10 14:47 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 20/26] tests/tcg: only read/write 64 bit words on 64 bit systems Alex Bennée
2024-09-10 14:48 ` Pierrick Bouvier
2024-09-10 14:07 ` [PATCH 21/26] tests/tcg: add a system test to check memory instrumentation Alex Bennée
2024-09-10 14:07 ` [PATCH 22/26] util/timer: avoid deadlock when shutting down Alex Bennée
2024-09-10 14:07 ` [PATCH 23/26] contrib/plugins: Add a plugin to generate basic block vectors Alex Bennée
2024-09-10 14:07 ` [PATCH 24/26] plugins: add plugin API to read guest memory Alex Bennée
2024-09-10 14:07 ` [PATCH 25/26] plugins: add option to dump write argument to syscall plugin Alex Bennée
2024-09-10 14:07 ` [PATCH 26/26] plugins: add ability to register a GDB triggered callback Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240910140733.4007719-1-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=bleal@redhat.com \
--cc=devel@lists.libvirt.org \
--cc=eduardo@habkost.net \
--cc=erdnaxe@crans.org \
--cc=jiaxun.yang@flygoat.com \
--cc=ma.mandourr@gmail.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).