graphic: 0.619 device: 0.618 semantic: 0.533 performance: 0.518 boot: 0.358 network: 0.350 permissions: 0.344 socket: 0.330 other: 0.314 debug: 0.273 PID: 0.265 vnc: 0.230 files: 0.148 KVM: 0.119 User mode qemu-aarch: SIGGSEGV signal handler works wrong I have a user mode qemu-aarch issue. Program with SIGSEGV signal handler works wrong under qemu-aarch: once the progam handles the SEGV signal, qemu marks the program's page protected, and signal handler gets SEGV on each subsequent memory access instruction within a program. The issue is reproduced on WSL Ubuntu 20.04 under Windows 10, qemu-aarch64 version 5.1.50 The issue is also reproducible on the latest upstream qemu-aarch build. The following workaround disables mprotect call and fixes the issue: https://github.com/BorisUlasevich/qemu/commit/3063d9a64f8395185d65c6b6710d28ee92cd8be5 The issue can be reproduced on OpenJDK which reports SIGSEGV immediately after start. The small reproducer program is attached. The patch is most definitely wrong. The page protection is required to implement self-modifying code, of which a signal trampoline is a subset. Moreover, your test case works for me using both x86_64-linux and aarch64-linux as hosts. There may be a bug, but I suspect it to be within WSL. I have no way to test that one way or another. [Expired for QEMU because there has been no activity for 60 days.]