From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org
Subject: Re: [PATCH 0/7] plugins: Use unwind info for special gdb registers
Date: Tue, 16 Apr 2024 17:35:40 -0700 [thread overview]
Message-ID: <c55a1d2c-bae0-44b5-9cd8-3df1b33c31ad@linaro.org> (raw)
In-Reply-To: <20240416040609.1313605-1-richard.henderson@linaro.org>
On 4/15/24 21:06, Richard Henderson wrote:
> Based-on: 20240404230611.21231-1-richard.henderson@linaro.org
> ("[PATCH v2 00/21] Rewrite plugin code generation")
>
> This is an attempt to fix
> https://gitlab.com/qemu-project/qemu/-/issues/2208
> ("PC is not updated for each instruction in TCG plugins")
>
> I have only updated target/i386 so far, but basically all targets
> need updating for the new callbacks. Extra points to anyone who
> sees how to avoid the extra code duplication. :-)
>
Thanks for the series Richard. It looks good to me.
Besides reviewing individual commits, I have a more general question.
From some discussions we had, it seems like that previously gdb stub
was correctly updating all register values, and that it has been dropped
at some point.
Was it for performance reasons, or an architectural change in QEMU?
Is gdb stub the right way to poke register values for plugins?
I don't know exactly why some registers are not updated correctly in
this context, but it seems like we are trying to fix this afterward,
instead of identifying root cause.
Sorry if my question is irrelevant, I'm trying to understand the full
context here.
Thanks,
Pierrick
>
> r~
>
>
> Richard Henderson (7):
> tcg: Introduce INDEX_op_plugin_pc
> accel/tcg: Set CPUState.plugin_ra before all plugin callbacks
> accel/tcg: Return the TranslationBlock from cpu_unwind_state_data
> plugins: Introduce TCGCPUOps callbacks for mid-tb register reads
> target/i386: Split out gdb-internal.h
> target/i386: Introduce cpu_compute_eflags_ccop
> target/i386: Implement TCGCPUOps for plugin register reads
>
> include/exec/cpu-common.h | 9 +++--
> include/hw/core/cpu.h | 1 +
> include/hw/core/tcg-cpu-ops.h | 13 +++++++
> include/tcg/tcg-op-common.h | 1 +
> include/tcg/tcg-opc.h | 1 +
> target/i386/cpu.h | 2 +
> target/i386/gdb-internal.h | 65 +++++++++++++++++++++++++++++++
> accel/tcg/plugin-gen.c | 50 +++++++++++++++++++++---
> accel/tcg/translate-all.c | 9 +++--
> plugins/api.c | 36 +++++++++++++++++-
> target/i386/gdbstub.c | 1 +
> target/i386/helper.c | 6 ++-
> target/i386/tcg/cc_helper.c | 10 +++++
> target/i386/tcg/tcg-cpu.c | 72 +++++++++++++++++++++++++++--------
> tcg/tcg-op.c | 5 +++
> tcg/tcg.c | 10 +++++
> 16 files changed, 258 insertions(+), 33 deletions(-)
> create mode 100644 target/i386/gdb-internal.h
>
next prev parent reply other threads:[~2024-04-17 0:36 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-16 4:06 [PATCH 0/7] plugins: Use unwind info for special gdb registers Richard Henderson
2024-04-16 4:06 ` [PATCH 1/7] tcg: Introduce INDEX_op_plugin_pc Richard Henderson
2024-04-18 17:53 ` Pierrick Bouvier
2024-04-16 4:06 ` [PATCH 2/7] accel/tcg: Set CPUState.plugin_ra before all plugin callbacks Richard Henderson
2024-04-18 17:54 ` Pierrick Bouvier
2024-05-31 16:46 ` Alex Bennée
2024-04-16 4:06 ` [PATCH 3/7] accel/tcg: Return the TranslationBlock from cpu_unwind_state_data Richard Henderson
2024-04-18 17:54 ` Pierrick Bouvier
2024-05-31 16:52 ` Alex Bennée
2024-04-16 4:06 ` [PATCH 4/7] plugins: Introduce TCGCPUOps callbacks for mid-tb register reads Richard Henderson
2024-04-18 17:55 ` Pierrick Bouvier
2024-04-16 4:06 ` [PATCH 5/7] target/i386: Split out gdb-internal.h Richard Henderson
2024-04-18 17:55 ` Pierrick Bouvier
2024-05-31 17:00 ` Alex Bennée
2024-04-16 4:06 ` [PATCH 6/7] target/i386: Introduce cpu_compute_eflags_ccop Richard Henderson
2024-04-18 17:56 ` Pierrick Bouvier
2024-04-16 4:06 ` [PATCH 7/7] target/i386: Implement TCGCPUOps for plugin register reads Richard Henderson
2024-04-18 17:56 ` Pierrick Bouvier
2024-04-17 0:35 ` Pierrick Bouvier [this message]
2024-04-17 2:40 ` [PATCH 0/7] plugins: Use unwind info for special gdb registers Richard Henderson
2024-04-17 15:39 ` Pierrick Bouvier
2024-04-22 16:49 ` Alex Bennée
-- strict thread matches above, loose matches on Subject: below --
2024-04-16 4:05 Richard Henderson
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=c55a1d2c-bae0-44b5-9cd8-3df1b33c31ad@linaro.org \
--to=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 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).