[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/60] accel/tcg: Fold cpu_exit_tb_from_sighandler into caller
From: |
Richard Henderson |
Subject: |
[PULL 04/60] accel/tcg: Fold cpu_exit_tb_from_sighandler into caller |
Date: |
Tue, 2 Nov 2021 07:06:44 -0400 |
Remove the comment about siglongjmp. We do use sigsetjmp
in the main cpu loop, but we do not save the signal mask
as most exits from the cpu loop do not require them.
Reviewed-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
accel/tcg/user-exec.c | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
index b83f8d12f4..b1183aa4b3 100644
--- a/accel/tcg/user-exec.c
+++ b/accel/tcg/user-exec.c
@@ -46,17 +46,6 @@ __thread uintptr_t helper_retaddr;
//#define DEBUG_SIGNAL
-/* exit the current TB from a signal handler. The host registers are
- restored in a state compatible with the CPU emulator
- */
-static void QEMU_NORETURN cpu_exit_tb_from_sighandler(CPUState *cpu,
- sigset_t *old_set)
-{
- /* XXX: use siglongjmp ? */
- sigprocmask(SIG_SETMASK, old_set, NULL);
- cpu_loop_exit_noexc(cpu);
-}
-
/*
* Adjust the pc to pass to cpu_restore_state; return the memop type.
*/
@@ -153,7 +142,8 @@ bool handle_sigsegv_accerr_write(CPUState *cpu, sigset_t
*old_set,
* Fault caused by protection of cached translation, and the
* currently executing TB was modified and must be exited immediately.
*/
- cpu_exit_tb_from_sighandler(cpu, old_set);
+ sigprocmask(SIG_SETMASK, old_set, NULL);
+ cpu_loop_exit_noexc(cpu);
/* NORETURN */
default:
g_assert_not_reached();
--
2.25.1
- [PULL 00/60] accel/tcg patch queue, Richard Henderson, 2021/11/02
- [PULL 01/60] accel/tcg: Split out adjust_signal_pc, Richard Henderson, 2021/11/02
- [PULL 04/60] accel/tcg: Fold cpu_exit_tb_from_sighandler into caller,
Richard Henderson <=
- [PULL 02/60] accel/tcg: Move clear_helper_retaddr to cpu loop, Richard Henderson, 2021/11/02
- [PULL 03/60] accel/tcg: Split out handle_sigsegv_accerr_write, Richard Henderson, 2021/11/02
- [PULL 06/60] linux-user: Reorg handling for SIGSEGV, Richard Henderson, 2021/11/02
- [PULL 12/60] linux-user/host/aarch64: Populate host_signal.h, Richard Henderson, 2021/11/02
- [PULL 08/60] linux-user/host/ppc: Populate host_signal.h, Richard Henderson, 2021/11/02
- [PULL 17/60] linux-user/host/riscv: Improve host_signal_write, Richard Henderson, 2021/11/02
- [PULL 21/60] target/alpha: Implement alpha_cpu_record_sigsegv, Richard Henderson, 2021/11/02
- [PULL 19/60] hw/core: Add TCGCPUOps.record_sigsegv, Richard Henderson, 2021/11/02
- [PULL 25/60] target/hexagon: Remove hexagon_cpu_tlb_fill, Richard Henderson, 2021/11/02
- [PULL 30/60] target/mips: Make mips_cpu_tlb_fill sysemu only, Richard Henderson, 2021/11/02