[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 02/41] accel/tcg: Move clear_helper_retaddr to cpu loop
From: |
Warner Losh |
Subject: |
Re: [PATCH v2 02/41] accel/tcg: Move clear_helper_retaddr to cpu loop |
Date: |
Sun, 19 Sep 2021 13:35:19 -0600 |
> On Sep 18, 2021, at 12:44 PM, Richard Henderson
> <richard.henderson@linaro.org> wrote:
>
> Currently there are only two places that require we reset this
> value before exiting to the main loop, but that will change.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> accel/tcg/cpu-exec.c | 3 ++-
> accel/tcg/user-exec.c | 2 --
> 2 files changed, 2 insertions(+), 3 deletions(-)
Reviewed-by: Warner Losh <imp@bsdimp.com>
> diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
> index 5fd1ed3422..410588d08a 100644
> --- a/accel/tcg/cpu-exec.c
> +++ b/accel/tcg/cpu-exec.c
> @@ -451,6 +451,7 @@ void cpu_exec_step_atomic(CPUState *cpu)
> * memory.
> */
> #ifndef CONFIG_SOFTMMU
> + clear_helper_retaddr();
> tcg_debug_assert(!have_mmap_lock());
> #endif
> if (qemu_mutex_iothread_locked()) {
> @@ -460,7 +461,6 @@ void cpu_exec_step_atomic(CPUState *cpu)
> qemu_plugin_disable_mem_helpers(cpu);
> }
>
> -
> /*
> * As we start the exclusive region before codegen we must still
> * be in the region if we longjump out of either the codegen or
> @@ -905,6 +905,7 @@ int cpu_exec(CPUState *cpu)
> #endif
>
> #ifndef CONFIG_SOFTMMU
> + clear_helper_retaddr();
> tcg_debug_assert(!have_mmap_lock());
> #endif
> if (qemu_mutex_iothread_locked()) {
> diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
> index cef025d001..e94f1fed00 100644
> --- a/accel/tcg/user-exec.c
> +++ b/accel/tcg/user-exec.c
> @@ -175,7 +175,6 @@ static inline int handle_cpu_signal(uintptr_t pc,
> siginfo_t *info,
> * currently executing TB was modified and must be exited
> * immediately. Clear helper_retaddr for next execution.
> */
> - clear_helper_retaddr();
> cpu_exit_tb_from_sighandler(cpu, old_set);
> /* NORETURN */
>
> @@ -193,7 +192,6 @@ static inline int handle_cpu_signal(uintptr_t pc,
> siginfo_t *info,
> * an exception. Undo signal and retaddr state prior to longjmp.
> */
> sigprocmask(SIG_SETMASK, old_set, NULL);
> - clear_helper_retaddr();
>
> cc = CPU_GET_CLASS(cpu);
> cc->tcg_ops->tlb_fill(cpu, address, 0, access_type,
> --
> 2.25.1
>
>
- [PATCH v2 00/41] linux-user: Streamline handling of SIGSEGV, Richard Henderson, 2021/09/18
- [PATCH v2 01/41] accel/tcg: Split out adjust_signal_pc, Richard Henderson, 2021/09/18
- [PATCH v2 03/41] accel/tcg: Split out handle_sigsegv_accerr_write, Richard Henderson, 2021/09/18
- [PATCH v2 02/41] accel/tcg: Move clear_helper_retaddr to cpu loop, Richard Henderson, 2021/09/18
- Re: [PATCH v2 02/41] accel/tcg: Move clear_helper_retaddr to cpu loop,
Warner Losh <=
- [PATCH v2 05/41] configure: Merge riscv32 and riscv64 host architectures, Richard Henderson, 2021/09/18
- [PATCH v2 04/41] accel/tcg: Fold cpu_exit_tb_from_sighandler into caller, Richard Henderson, 2021/09/18
- [PATCH v2 08/41] linux-user/host/ppc: Populate host_signal.h, Richard Henderson, 2021/09/18
- [PATCH v2 06/41] linux-user: Reorg handling for SIGSEGV, Richard Henderson, 2021/09/18