From: "Alex Bennée" <alex.bennee@linaro.org>
To: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>
Subject: Re: [PATCH v2] plugins: fix qemu_plugin_reset
Date: Mon, 21 Oct 2024 11:22:59 +0100 [thread overview]
Message-ID: <87msixoiv0.fsf@draig.linaro.org> (raw)
In-Reply-To: <20241015003819.984601-1-pierrick.bouvier@linaro.org> (Pierrick Bouvier's message of "Mon, 14 Oct 2024 17:38:19 -0700")
Pierrick Bouvier <pierrick.bouvier@linaro.org> writes:
> 34e5e1 refactored the plugin context initialization. After this change,
> tcg_ctx->plugin_insn is not reset inconditionnally anymore, but only if
> one plugin at least is active.
>
> When uninstalling the last plugin active, we stopped reinitializing
> tcg_ctx->plugin_insn, which leads to memory callbacks being emitted.
> This results in an error as they don't appear in a plugin op sequence as
> expected.
>
> The correct fix is to make sure we reset plugin translation variables
> after current block translation ends. This way, we can catch any
> potential misuse of those after a given block, in more than fixing the
> current bug.
>
> v2: do not reset tcg_ctx->plugin_tb as it gets reused between
> translations.
For reference put version information bellow
---
and then the git tools will trim it out of the commit message.
Queued to plugins/next, thanks.
>
> Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2570
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
> accel/tcg/plugin-gen.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c
> index 2ee4c22befd..0f47bfbb489 100644
> --- a/accel/tcg/plugin-gen.c
> +++ b/accel/tcg/plugin-gen.c
> @@ -467,4 +467,8 @@ void plugin_gen_tb_end(CPUState *cpu, size_t num_insns)
>
> /* inject the instrumentation at the appropriate places */
> plugin_gen_inject(ptb);
> +
> + /* reset plugin translation state (plugin_tb is reused between blocks) */
> + tcg_ctx->plugin_db = NULL;
> + tcg_ctx->plugin_insn = NULL;
> }
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2024-10-21 10:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-15 0:38 [PATCH v2] plugins: fix qemu_plugin_reset Pierrick Bouvier
2024-10-15 9:33 ` Robbin Ehn
2024-10-21 10:22 ` Alex Bennée [this message]
2024-10-21 15:56 ` Pierrick Bouvier
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=87msixoiv0.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@linaro.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.