From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Mahmoud Mandour" <ma.mandourr@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Alexandre Iooss" <erdnaxe@crans.org>
Subject: [PATCH 00/12] TCG Plugin inline operation enhancement
Date: Thu, 11 Jan 2024 18:23:13 +0400 [thread overview]
Message-ID: <20240111142326.1743444-1-pierrick.bouvier@linaro.org> (raw)
This series adds a new thread-safe API to declare inline operation
inside plugins. As well, it removes the existing non thread-safe API,
and migrates all existing plugins to use it.
Tested on Linux (user, system) for i386, x86_64 and aarch64.
To give some context, this a long term series of work around plugins,
with the goal to be able to do basic operations in a more performant and
accurate way. This will mean to add more inline operations and
conditional callbacks.
One final target of this work is to implement a plugin that implements
the icount=auto feature, and allow QEMU to run at a given "frequency"
based on number of instructions executed, without QEMU needing to keep
track of this.
Another final target is to be able to detect control flow changes in an
efficient and elegant way, by combining inline operation and conditional
callbacks.
Pierrick Bouvier (12):
plugins: implement inline operation with cpu_index offset
plugins: add inline operation per vcpu
tests/plugin: add test plugin for inline operations
tests/plugin/inline: migrate to new per_vcpu API
tests/plugin/mem: fix race condition with callbacks
tests/plugin/mem: migrate to new per_vcpu API
tests/plugin/insn: migrate to new per_vcpu API
tests/plugin/bb: migrate to new per_vcpu API
contrib/plugins/hotblocks: migrate to new per_vcpu API
contrib/plugins/howvec: migrate to new per_vcpu API
plugins: remove non per_vcpu inline operation from API
MAINTAINERS: Add myself as reviewer for TCG Plugins
MAINTAINERS | 1 +
accel/tcg/plugin-gen.c | 60 +++++++++++++---
contrib/plugins/hotblocks.c | 25 +++++--
contrib/plugins/howvec.c | 33 ++++++---
include/qemu/plugin.h | 1 +
include/qemu/qemu-plugin.h | 65 +++++++++--------
plugins/api.c | 35 +++++----
plugins/core.c | 11 +--
plugins/plugin.h | 5 +-
plugins/qemu-plugins.symbols | 3 +
tests/plugin/bb.c | 54 +++++++-------
tests/plugin/inline.c | 166 +++++++++++++++++++++++++++++++++++++++++++
tests/plugin/insn.c | 14 ++--
tests/plugin/mem.c | 21 ++++--
tests/plugin/meson.build | 2 +-
15 files changed, 383 insertions(+), 113 deletions(-)
Pierrick Bouvier (12):
plugins: implement inline operation with cpu_index offset
plugins: add inline operation per vcpu
tests/plugin: add test plugin for inline operations
tests/plugin/inline: migrate to new per_vcpu API
tests/plugin/mem: fix race condition with callbacks
tests/plugin/mem: migrate to new per_vcpu API
tests/plugin/insn: migrate to new per_vcpu API
tests/plugin/bb: migrate to new per_vcpu API
contrib/plugins/hotblocks: migrate to new per_vcpu API
contrib/plugins/howvec: migrate to new per_vcpu API
plugins: remove non per_vcpu inline operation from API
MAINTAINERS: Add myself as reviewer for TCG Plugins
MAINTAINERS | 1 +
accel/tcg/plugin-gen.c | 60 ++++++++++---
contrib/plugins/hotblocks.c | 25 ++++--
contrib/plugins/howvec.c | 33 ++++---
include/qemu/plugin.h | 1 +
include/qemu/qemu-plugin.h | 65 ++++++++------
plugins/api.c | 35 +++++---
plugins/core.c | 11 ++-
plugins/plugin.h | 5 +-
plugins/qemu-plugins.symbols | 3 +
tests/plugin/bb.c | 54 ++++++------
tests/plugin/inline.c | 166 +++++++++++++++++++++++++++++++++++
tests/plugin/insn.c | 14 ++-
tests/plugin/mem.c | 21 +++--
tests/plugin/meson.build | 2 +-
15 files changed, 383 insertions(+), 113 deletions(-)
create mode 100644 tests/plugin/inline.c
--
2.43.0
next reply other threads:[~2024-01-11 14:24 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-11 14:23 Pierrick Bouvier [this message]
2024-01-11 14:23 ` [PATCH 01/12] plugins: implement inline operation with cpu_index offset Pierrick Bouvier
2024-01-11 22:04 ` Richard Henderson
2024-01-12 14:27 ` Pierrick Bouvier
2024-01-12 22:22 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 02/12] plugins: add inline operation per vcpu Pierrick Bouvier
2024-01-11 22:08 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 03/12] tests/plugin: add test plugin for inline operations Pierrick Bouvier
2024-01-11 15:57 ` Philippe Mathieu-Daudé
2024-01-11 17:20 ` Pierrick Bouvier
2024-01-12 17:20 ` Alex Bennée
2024-01-13 5:16 ` Pierrick Bouvier
2024-01-13 17:16 ` Alex Bennée
2024-01-15 7:06 ` Pierrick Bouvier
2024-01-15 9:04 ` Alex Bennée
2024-01-16 7:46 ` Pierrick Bouvier
2024-01-11 14:23 ` [PATCH 04/12] tests/plugin/inline: migrate to new per_vcpu API Pierrick Bouvier
2024-01-11 22:10 ` Richard Henderson
2024-01-12 3:51 ` Pierrick Bouvier
2024-01-12 8:40 ` Richard Henderson
2024-01-12 8:58 ` Pierrick Bouvier
2024-01-11 14:23 ` [PATCH 05/12] tests/plugin/mem: fix race condition with callbacks Pierrick Bouvier
2024-01-11 22:12 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 06/12] tests/plugin/mem: migrate to new per_vcpu API Pierrick Bouvier
2024-01-11 14:23 ` [PATCH 07/12] tests/plugin/insn: " Pierrick Bouvier
2024-01-11 22:14 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 08/12] tests/plugin/bb: " Pierrick Bouvier
2024-01-11 22:15 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 09/12] contrib/plugins/hotblocks: " Pierrick Bouvier
2024-01-12 8:42 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 10/12] contrib/plugins/howvec: " Pierrick Bouvier
2024-01-12 8:44 ` Richard Henderson
2024-01-11 14:23 ` [PATCH 11/12] plugins: remove non per_vcpu inline operation from API Pierrick Bouvier
2024-01-11 14:23 ` [PATCH 12/12] MAINTAINERS: Add myself as reviewer for TCG Plugins Pierrick Bouvier
2024-01-12 15:53 ` Philippe Mathieu-Daudé
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=20240111142326.1743444-1-pierrick.bouvier@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=erdnaxe@crans.org \
--cc=ma.mandourr@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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).