diff options
| author | Pierrick Bouvier <pierrick.bouvier@linaro.org> | 2024-08-13 21:23:28 +0100 |
|---|---|---|
| committer | Alex Bennée <alex.bennee@linaro.org> | 2024-08-16 14:13:07 +0100 |
| commit | 3f9f9a37ae2404c54458acadb516f0eda7cd2c15 (patch) | |
| tree | 93d5ba589f1859af0e561a86486196480ab98069 /docs/devel/tcg-plugins.rst | |
| parent | 24c32ed3745af104ee6f47c09c13042e8e4657db (diff) | |
| download | focaccia-qemu-3f9f9a37ae2404c54458acadb516f0eda7cd2c15.tar.gz focaccia-qemu-3f9f9a37ae2404c54458acadb516f0eda7cd2c15.zip | |
docs/devel: update tcg-plugins page
Reflect recent changes on API (inline ops) and new plugins. Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20240812231945.169310-1-pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240813202329.1237572-21-alex.bennee@linaro.org>
Diffstat (limited to 'docs/devel/tcg-plugins.rst')
| -rw-r--r-- | docs/devel/tcg-plugins.rst | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/docs/devel/tcg-plugins.rst b/docs/devel/tcg-plugins.rst index d8725c2854..9463692c41 100644 --- a/docs/devel/tcg-plugins.rst +++ b/docs/devel/tcg-plugins.rst @@ -61,11 +61,14 @@ translation event the plugin has an option to enumerate the instructions in a block of instructions and optionally register callbacks to some or all instructions when they are executed. -There is also a facility to add an inline event where code to -increment a counter can be directly inlined with the translation. -Currently only a simple increment is supported. This is not atomic so -can miss counts. If you want absolute precision you should use a -callback which can then ensure atomicity itself. +There is also a facility to add inline instructions doing various operations, +like adding or storing an immediate value. It is also possible to execute a +callback conditionally, with condition being evaluated inline. All those inline +operations are associated to a ``scoreboard``, which is a thread-local storage +automatically expanded when new cores/threads are created and that can be +accessed/modified in a thread-safe way without any lock needed. Combining inline +operations and conditional callbacks offer a more efficient way to instrument +binaries, compared to classic callbacks. Finally when QEMU exits all the registered *atexit* callbacks are invoked. |