Hi, For the v1 posting, see here: https://lore.kernel.org/io-uring/20210326003928.978750-1-axboe@xxxxxxxxx/ I've run this through the usual testing, and it's running long term right now. I've tested the cases that Stefan reported, and we seem fine now. Changes since v1: - Catch fatal signals in get_signal() for PF_IO_WORKER. This is only a problem for nested signals, like SIGSTOP followed by SIGKILL. We can't have get_signal() calling do_exit() on behalf of the IO threads, they have cleanups to do. Thanks Stefan. - Move signal masking to when the PF_IO_WORKER thread is created, and since we now handle SIGSTOP, unmask that as well. Thanks Oleg. - Remove try_to_freeze() parts in IO threads, we don't need those anymore with the calling of get_signal(). - Minor cleanups. fs/io-wq.c | 24 +++++++++++++++++------- fs/io_uring.c | 12 ++++++++---- kernel/fork.c | 16 ++++++++-------- kernel/freezer.c | 2 +- kernel/ptrace.c | 2 +- kernel/signal.c | 19 ++++++++++++------- 6 files changed, 47 insertions(+), 28 deletions(-) -- Jens Axboe