qemu/target/i386/tcg
Pierrick Bouvier 7ba055b49b target/i386: fix hang when using slow path for ptw_setl
When instrumenting memory accesses for plugin, we force memory accesses
to use the slow path for mmu [1]. This create a situation where we end
up calling ptw_setl_slow. This was fixed recently in [2] but the issue
still could appear out of plugins use case.

Since this function gets called during a cpu_exec, start_exclusive then
hangs. This exclusive section was introduced initially for security
reasons [3].

I suspect this code path was never triggered, because ptw_setl_slow
would always be called transitively from cpu_exec, resulting in a hang.

[1] 6d03226b42
[2] 115ade42d5
[3] https://gitlab.com/qemu-project/qemu/-/issues/279

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2566
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20241025175857.2554252-2-pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2024-11-16 08:42:25 -08:00
..
sysemu target/i386: fix hang when using slow path for ptw_setl 2024-11-16 08:42:25 -08:00
user target/i386: implement SYSCALL/SYSRET in 32-bit emulators 2023-06-26 10:23:56 +02:00
access.c target/i386: allow access_ptr to force slow path on failed probe 2024-08-16 14:04:19 +01:00
access.h target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
bpt_helper.c compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
cc_helper_template.h.inc target/i386: use + to put flags together 2024-10-31 18:28:33 +01:00
cc_helper.c target/i386: use compiler builtin to compute PF 2024-10-31 18:28:33 +01:00
decode-new.c.inc target/i386: Wrap cc_op_live with a validity check 2024-10-31 18:28:33 +01:00
decode-new.h target/i386: convert CMPXCHG8B/CMPXCHG16B to new decoder 2024-10-17 19:41:29 +02:00
emit.c.inc target/i386: Wrap cc_op_live with a validity check 2024-10-31 18:28:33 +01:00
excp_helper.c target/i386: fix implementation of ICEBP 2024-06-08 10:33:37 +02:00
fpu_helper.c target/i386: Set 2-NaN propagation rule explicitly 2024-11-05 10:09:56 +00:00
helper-tcg.h target/i386: use compiler builtin to compute PF 2024-10-31 18:28:33 +01:00
int_helper.c target/i386: use compiler builtin to compute PF 2024-10-31 18:28:33 +01:00
mem_helper.c target/i386: Inline cmpxchg16b 2023-02-04 06:19:43 -10:00
meson.build target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
misc_helper.c target/i386: fix INHIBIT_IRQ/TF/RF handling for PAUSE 2024-06-08 10:33:38 +02:00
mpx_helper.c
ops_sse_header.h.inc target/i386: implement SHA instructions 2023-10-25 17:35:07 +02:00
seg_helper.c target/i386: Fix legacy page table walk 2024-11-07 16:54:02 +01:00
seg_helper.h i386: split seg_helper into user-only and sysemu parts 2021-05-10 15:41:52 -04:00
tcg-cpu.c target/i386: Extract x86_cpu_exec_halt() from accel/tcg/ 2024-01-29 21:04:10 +10:00
tcg-cpu.h target/i386: Move X86XSaveArea into TCG 2021-07-06 08:33:51 +02:00
tcg-stub.c
translate.c target/i386: add a note about gen_jcc1 2024-10-31 18:28:33 +01:00