[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 22/37] accel/tcg: also suppress asynchronous IRQs for cpu_io_r
From: |
Alex Bennée |
Subject: |
[PATCH v3 22/37] accel/tcg: also suppress asynchronous IRQs for cpu_io_recompile |
Date: |
Thu, 16 Jan 2025 16:02:51 +0000 |
While it would be technically correct to allow an IRQ to happen (as
the offending instruction never really completed) it messes up
instrumentation. We already take care to only use memory
instrumentation on the block, we should also suppress IRQs.
Message-Id: <20250109170619.2271193-23-alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Julian Ganz <neither@nut.email>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Julian Ganz <neither@nut.email>
---
accel/tcg/translate-all.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 453eb20ec9..d56ca13cdd 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -633,9 +633,10 @@ void cpu_io_recompile(CPUState *cpu, uintptr_t retaddr)
* Exit the loop and potentially generate a new TB executing the
* just the I/O insns. We also limit instrumentation to memory
* operations only (which execute after completion) so we don't
- * double instrument the instruction.
+ * double instrument the instruction. Also don't let an IRQ sneak
+ * in before we execute it.
*/
- cpu->cflags_next_tb = curr_cflags(cpu) | CF_MEMI_ONLY | n;
+ cpu->cflags_next_tb = curr_cflags(cpu) | CF_MEMI_ONLY | CF_NOIRQ | n;
if (qemu_loglevel_mask(CPU_LOG_EXEC)) {
vaddr pc = cpu->cc->get_pc(cpu);
--
2.39.5
- [PATCH v3 10/37] system: propagate Error to gdbserver_start (and other device setups), (continued)
- [PATCH v3 10/37] system: propagate Error to gdbserver_start (and other device setups), Alex Bennée, 2025/01/16
- [PATCH v3 14/37] tests/tcg/plugins/mem: fix 32-bit build, Alex Bennée, 2025/01/16
- [PATCH v3 30/37] include/exec: remove warning_printed from MemoryRegion, Alex Bennée, 2025/01/16
- [PATCH v3 06/37] semihosting/console: Avoid including 'cpu.h', Alex Bennée, 2025/01/16
- [PATCH v3 37/37] scripts/nsis.py: Run dependency check for each DLL file only once, Alex Bennée, 2025/01/16
- [PATCH v3 11/37] tests/tcg/plugins/insn: remove unused callback parameter, Alex Bennée, 2025/01/16
- [PATCH v3 08/37] system/vl: more error exit into config enumeration code, Alex Bennée, 2025/01/16
- [PATCH v3 16/37] contrib/plugins/cache: fix 32-bit build, Alex Bennée, 2025/01/16
- [PATCH v3 29/37] include/exec: fix some copy and paste errors in kdoc, Alex Bennée, 2025/01/16
- Re: [PATCH v3 00/37] maintainer updates for jan '25 (semihosting, gdb, plugins, docs) pre-PR-FINAL, Alex Bennée, 2025/01/16
- [PATCH v3 22/37] accel/tcg: also suppress asynchronous IRQs for cpu_io_recompile,
Alex Bennée <=
- [PATCH v3 32/37] docs/devel: add git-publish for patch submitting, Alex Bennée, 2025/01/16
- [PATCH v3 26/37] plugins: fix kdoc annotation, Alex Bennée, 2025/01/16
- [PATCH v3 19/37] contrib/plugins/hwprofile: fix 32-bit build, Alex Bennée, 2025/01/16
- [PATCH v3 36/37] docs: add a glossary, Alex Bennée, 2025/01/16
- [PATCH v3 27/37] editorconfig: update for perl scripts, Alex Bennée, 2025/01/16
- [PATCH v3 35/37] docs/devel: add a codebase section, Alex Bennée, 2025/01/16
- [PATCH v3 33/37] docs/devel: add b4 for patch retrieval, Alex Bennée, 2025/01/16
- [PATCH v3 17/37] contrib/plugins/hotblocks: fix 32-bit build, Alex Bennée, 2025/01/16
- [PATCH v3 28/37] tests/qtest: fix some copy and paste errors in kdoc, Alex Bennée, 2025/01/16
- [PATCH v3 18/37] contrib/plugins/cflow: fix 32-bit build, Alex Bennée, 2025/01/16