From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Thomas Huth" <thuth@redhat.com>,
"Xiaojuan Yang" <yangxiaojuan@loongson.cn>,
"Cédric Le Goater" <clg@kaod.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Bastian Koppelmann" <kbastian@mail.uni-paderborn.de>,
"Brad Smith" <brad@comstyle.com>,
"Radoslaw Biernacki" <rad@semihalf.com>,
"David Hildenbrand" <david@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
qemu-riscv@nongnu.org,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Alexandre Iooss" <erdnaxe@crans.org>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Bin Meng" <bin.meng@windriver.com>,
"Leif Lindholm" <quic_llindhol@quicinc.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Alistair Francis" <alistair.francis@wdc.com>,
qemu-ppc@nongnu.org, "John Snow" <jsnow@redhat.com>,
"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
qemu-arm@nongnu.org,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Weiwei Li" <liweiwei@iscas.ac.cn>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Beraldo Leal" <bleal@redhat.com>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
"Mahmoud Mandour" <ma.mandourr@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Song Gao" <gaosong@loongson.cn>,
"Marcin Juszkiewicz" <marcin.juszkiewicz@linaro.org>,
qemu-s390x@nongnu.org,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH 21/25] target/sh4: Disable decode_gusa when plugins enabled
Date: Mon, 9 Oct 2023 17:41:00 +0100 [thread overview]
Message-ID: <20231009164104.369749-22-alex.bennee@linaro.org> (raw)
In-Reply-To: <20231009164104.369749-1-alex.bennee@linaro.org>
From: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230824181233.1568795-3-richard.henderson@linaro.org>
[AJB: fixed s/cpu_env/tcg_env/ during re-base]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
target/sh4/translate.c | 41 +++++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)
diff --git a/target/sh4/translate.c b/target/sh4/translate.c
index cbd8dfc02f..220a06bdce 100644
--- a/target/sh4/translate.c
+++ b/target/sh4/translate.c
@@ -1816,6 +1816,18 @@ static void decode_opc(DisasContext * ctx)
}
#ifdef CONFIG_USER_ONLY
+/*
+ * Restart with the EXCLUSIVE bit set, within a TB run via
+ * cpu_exec_step_atomic holding the exclusive lock.
+ */
+static void gen_restart_exclusive(DisasContext *ctx)
+{
+ ctx->envflags |= TB_FLAG_GUSA_EXCLUSIVE;
+ gen_save_cpu_state(ctx, false);
+ gen_helper_exclusive(tcg_env);
+ ctx->base.is_jmp = DISAS_NORETURN;
+}
+
/* For uniprocessors, SH4 uses optimistic restartable atomic sequences.
Upon an interrupt, a real kernel would simply notice magic values in
the registers and reset the PC to the start of the sequence.
@@ -2149,12 +2161,7 @@ static void decode_gusa(DisasContext *ctx, CPUSH4State *env)
qemu_log_mask(LOG_UNIMP, "Unrecognized gUSA sequence %08x-%08x\n",
pc, pc_end);
- /* Restart with the EXCLUSIVE bit set, within a TB run via
- cpu_exec_step_atomic holding the exclusive lock. */
- ctx->envflags |= TB_FLAG_GUSA_EXCLUSIVE;
- gen_save_cpu_state(ctx, false);
- gen_helper_exclusive(tcg_env);
- ctx->base.is_jmp = DISAS_NORETURN;
+ gen_restart_exclusive(ctx);
/* We're not executing an instruction, but we must report one for the
purposes of accounting within the TB. We might as well report the
@@ -2242,12 +2249,22 @@ static void sh4_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
#ifdef CONFIG_USER_ONLY
if (unlikely(ctx->envflags & TB_FLAG_GUSA_MASK)
&& !(ctx->envflags & TB_FLAG_GUSA_EXCLUSIVE)) {
- /* We're in an gUSA region, and we have not already fallen
- back on using an exclusive region. Attempt to parse the
- region into a single supported atomic operation. Failure
- is handled within the parser by raising an exception to
- retry using an exclusive region. */
- decode_gusa(ctx, env);
+ /*
+ * We're in an gUSA region, and we have not already fallen
+ * back on using an exclusive region. Attempt to parse the
+ * region into a single supported atomic operation. Failure
+ * is handled within the parser by raising an exception to
+ * retry using an exclusive region.
+ *
+ * Parsing the region in one block conflicts with plugins,
+ * so always use exclusive mode if plugins enabled.
+ */
+ if (ctx->base.plugin_enabled) {
+ gen_restart_exclusive(ctx);
+ ctx->base.pc_next += 2;
+ } else {
+ decode_gusa(ctx, env);
+ }
return;
}
#endif
--
2.39.2
next prev parent reply other threads:[~2023-10-09 16:47 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-09 16:40 [PATCH 00/25] October maintainer omnibus pre-PR (tests, gdbstub, plugins) Alex Bennée
2023-10-09 16:40 ` [PATCH 01/25] tests/avocado: update firmware to enable OpenBSD test on sbsa-ref Alex Bennée
2023-10-09 16:40 ` [PATCH 02/25] tests/avocado: remove flaky test marking for test_sbsaref_edk2_firmware Alex Bennée
2023-10-10 11:56 ` Philippe Mathieu-Daudé
2023-10-09 16:40 ` [PATCH 03/25] tests/lcitool: add swtpm to the package list Alex Bennée
2023-10-10 11:57 ` Philippe Mathieu-Daudé
2023-10-09 16:40 ` [PATCH 04/25] gitlab: shuffle some targets and reduce avocado noise Alex Bennée
2023-10-09 16:40 ` [PATCH 05/25] tests/docker: make docker engine choice entirely configure driven Alex Bennée
2023-10-11 1:02 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 06/25] configure: allow user to override docker engine Alex Bennée
2023-10-11 0:59 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 07/25] configure: remove gcc version suffixes Alex Bennée
2023-10-10 11:57 ` Philippe Mathieu-Daudé
2023-10-09 16:40 ` [PATCH 08/25] gdbstub: Fix target_xml initialization Alex Bennée
2023-10-11 1:00 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 09/25] gdbstub: Fix target.xml response Alex Bennée
2023-10-09 16:40 ` [PATCH 10/25] plugins: Check if vCPU is realized Alex Bennée
2023-10-09 16:40 ` [PATCH 11/25] contrib/plugins: Use GRWLock in execlog Alex Bennée
2023-10-09 16:40 ` [PATCH 12/25] gdbstub: Introduce GDBFeature structure Alex Bennée
2023-10-09 16:40 ` [PATCH 13/25] target/arm: Move the reference to arm-core.xml Alex Bennée
2023-10-09 16:40 ` [PATCH 14/25] hw/core/cpu: Return static value with gdb_arch_name() Alex Bennée
2023-10-11 0:55 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 15/25] gdbstub: Use g_markup_printf_escaped() Alex Bennée
2023-10-09 16:40 ` [PATCH 16/25] target/arm: Remove references to gdb_has_xml Alex Bennée
2023-10-11 1:03 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 17/25] target/ppc: " Alex Bennée
2023-10-09 16:40 ` [PATCH 18/25] gdbstub: Remove gdb_has_xml variable Alex Bennée
2023-10-11 0:58 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 19/25] gdbstub: Replace gdb_regs with an array Alex Bennée
2023-10-11 0:57 ` Alistair Francis
2023-10-09 16:40 ` [PATCH 20/25] accel/tcg: Add plugin_enabled to DisasContextBase Alex Bennée
2023-10-09 16:41 ` Alex Bennée [this message]
2023-10-09 16:41 ` [PATCH 22/25] plugins: Set final instruction count in plugin_gen_tb_end Alex Bennée
2023-10-09 16:41 ` [PATCH 23/25] contrib/plugins: fix coverity warning in cache Alex Bennée
2023-10-09 16:41 ` [PATCH 24/25] contrib/plugins: fix coverity warning in lockstep Alex Bennée
2023-10-09 16:41 ` [PATCH 25/25] contrib/plugins: fix coverity warning in hotblocks Alex Bennée
2023-10-10 12:00 ` 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=20231009164104.369749-22-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=alistair.francis@wdc.com \
--cc=berrange@redhat.com \
--cc=bin.meng@windriver.com \
--cc=bleal@redhat.com \
--cc=brad@comstyle.com \
--cc=clg@kaod.org \
--cc=crosa@redhat.com \
--cc=danielhb413@gmail.com \
--cc=david@redhat.com \
--cc=eduardo@habkost.net \
--cc=erdnaxe@crans.org \
--cc=gaosong@loongson.cn \
--cc=iii@linux.ibm.com \
--cc=jsnow@redhat.com \
--cc=kbastian@mail.uni-paderborn.de \
--cc=liweiwei@iscas.ac.cn \
--cc=ma.mandourr@gmail.com \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=marcin.juszkiewicz@linaro.org \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=quic_llindhol@quicinc.com \
--cc=rad@semihalf.com \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=yangxiaojuan@loongson.cn \
--cc=ysato@users.sourceforge.jp \
--cc=zhiwei_liu@linux.alibaba.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).