i386: 0.974 mistranslation: 0.413 device: 0.389 graphic: 0.286 network: 0.262 performance: 0.242 socket: 0.231 semantic: 0.163 kernel: 0.148 architecture: 0.145 register: 0.119 PID: 0.109 permissions: 0.096 vnc: 0.096 boot: 0.087 debug: 0.087 arm: 0.058 files: 0.053 ppc: 0.052 virtual: 0.049 user-level: 0.047 hypervisor: 0.043 x86: 0.039 risc-v: 0.037 KVM: 0.034 assembly: 0.029 VMM: 0.027 peripherals: 0.019 TCG: 0.017 qemu-user doesn't block target signals on entry to signal hanlder. Upon entry to a target signal handler the function process_pending_signals in linux-user/signal.c block the appropriate host signals, but signals already received and queued by Qemu are not blocked. If multiple signals arrive in quick succession this results incorrect recursion in the target signal handler. The attached test case my be run as: $ (sleep 2 ; echo) | qemu-i386 ./a.out .................. Recursion in signal handler! qemu: uncaught target signal 6 (Aborted) - core dumped The patches to block signals on entry to the signal handler have now been applied to master.