It's reported [1] that a task_work queued at a wrong time can prevent freezing and make the tasks to spin in get_signal() taking 100% of CPU. Patch 1 is a preparation. Patch 2 addresses the issue. [1] https://github.com/systemd/systemd/issues/33626 Pavel Begunkov (2): io_uring/io-wq: limit retrying worker initialisation signal: rerun task_work while freezing io_uring/io-wq.c | 10 +++++++--- kernel/signal.c | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) -- 2.44.0