[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 0/4] Fix deadlock when dying because of a signal
From: |
Ilya Leoshkevich |
Subject: |
[PATCH v4 0/4] Fix deadlock when dying because of a signal |
Date: |
Tue, 14 Feb 2023 15:08:25 +0100 |
Based-on: <20230202005204.2055899-1-richard.henderson@linaro.org>
("[PATCH 00/14] linux-user/sparc: Handle missing traps")
v3: https://lists.gnu.org/archive/html/qemu-devel/2023-02/msg03534.html
v3 -> v4: Add printfs to the test in order to make the uncaught signals
less scary:
$ build/x86_64-linux-user/qemu-x86_64
build/tests/tcg/x86_64-linux-user/linux-fork-trap
about to trigger fault...
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
faulting thread exited cleanly
v2: https://lists.gnu.org/archive/html/qemu-devel/2023-02/msg03299.html
v2 -> v3: Use exclusive_context_count = 1 instead of
exclusive_context_count++ in the non-recursive case.
v1: https://lists.gnu.org/archive/html/qemu-devel/2023-01/msg07251.html
v1 -> v2: Drop the sparc patch (superseded by Richard's series).
Add the end_exclusive() fix.
Hi,
wasmtime testsuite found a deadlock in qemu_plugin_user_exit().
I tracked it down to one of my earlier patches, which introduced
cleanup in dump_core_and_abort().
Patches 1 and 2 fix the issue, patch 3 fixes __builtin_trap()
handling in microblaze, which is needed for patch 4, that adds a test.
Best regards,
Ilya
Ilya Leoshkevich (4):
linux-user: Always exit from exclusive state in fork_end()
cpus: Make {start,end}_exclusive() recursive
linux-user/microblaze: Handle privileged exception
tests/tcg/linux-test: Add linux-fork-trap test
cpus-common.c | 12 ++++-
include/hw/core/cpu.h | 4 +-
linux-user/main.c | 10 ++--
linux-user/microblaze/cpu_loop.c | 10 +++-
linux-user/syscall.c | 1 +
tests/tcg/multiarch/linux/linux-fork-trap.c | 51 +++++++++++++++++++++
6 files changed, 78 insertions(+), 10 deletions(-)
create mode 100644 tests/tcg/multiarch/linux/linux-fork-trap.c
--
2.39.1
- [PATCH v4 0/4] Fix deadlock when dying because of a signal,
Ilya Leoshkevich <=
- [PATCH v4 2/4] cpus: Make {start,end}_exclusive() recursive, Ilya Leoshkevich, 2023/02/14
- [PATCH v4 1/4] linux-user: Always exit from exclusive state in fork_end(), Ilya Leoshkevich, 2023/02/14
- [PATCH v4 4/4] tests/tcg/linux-test: Add linux-fork-trap test, Ilya Leoshkevich, 2023/02/14
- [PATCH v4 3/4] linux-user/microblaze: Handle privileged exception, Ilya Leoshkevich, 2023/02/14
- Re: [PATCH v4 0/4] Fix deadlock when dying because of a signal, Richard Henderson, 2023/02/16