[PATCH v3 03/10] accel/tcg: Use one_insn_per_tb global instead of old singlestep global
Richard Henderson
richard.henderson at linaro.org
Tue Apr 18 08:02:27 UTC 2023
On 4/17/23 18:40, Peter Maydell wrote:
> The only place left that looks at the old 'singlestep' global
> variable is the TCG curr_cflags() function. Replace the old global
> with a new 'one_insn_per_tb' which is defined in tcg-all.c and
> declared in accel/tcg/internal.h. This keeps it restricted to the
> TCG code, unlike 'singlestep' which was available to every file in
> the system and defined in multiple different places for softmmu vs
> linux-user vs bsd-user.
>
> While we're making this change, use qatomic_read() and qatomic_set()
> on the accesses to the new global, because TCG will read it without
> holding a lock.
>
> Signed-off-by: Peter Maydell<peter.maydell at linaro.org>
> ---
> In discussion on v2, we talked about combining this with the
> 'nochain' flag so as to have a single 'tcg_cflags_global' that
> held the flags for the current (one_insn_per_tb, nochain) state.
> I have not attempted that here, because it's a little tricky:
> * util/log.c is built into some binaries that don't have an
> accelerator at all (the tools), so it can't simply call
> current_accel() to get the TCG accelerator
Ah ha, yes, tricky.
> * the initial value of the logging flags is set before the
> TCG accelerator is even created
> So I leave that to somebody else to have a go at if they like.
> ---
> accel/tcg/internal.h | 2 ++
> include/exec/cpu-common.h | 2 --
> accel/tcg/cpu-exec.c | 2 +-
> accel/tcg/tcg-all.c | 6 ++++--
> bsd-user/main.c | 1 -
> linux-user/main.c | 1 -
> softmmu/globals.c | 1 -
> 7 files changed, 7 insertions(+), 8 deletions(-)
Reviewed-by: Richard Henderson <richard.henderson at linaro.org>
r~
More information about the libvir-list
mailing list