task_work: unconditionally run task_work from get_signal()
[ Upstream commit 35d0b389 ] Song reported a boot regression in a kvm image with 5.11-rc, and bisected it down to the below patch. Debugging this issue, turns out that the boot stalled when a task is waiting on a pipe being released. As we no longer run task_work from get_signal() unless it's queued with TWA_SIGNAL, the task goes idle without running the task_work. This prevents ->release() from being called on the pipe, which another boot task is waiting on. For now, re-instate the unconditional task_work run from get_signal(). For 5.12, we'll collapse TWA_RESUME and TWA_SIGNAL, as it no longer makes sense to have a distinction between the two. This will turn task_work notification into a simple boolean, whether to notify or not. Fixes: 98b89b64 ("signal: kill JOBCTL_TASK_WORK") Reported-by:Song Liu <songliubraving@fb.com> Tested-by:
John Stultz <john.stultz@linaro.org> Tested-by:
Douglas Anderson <dianders@chromium.org> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # LLVM/Clang version 11.0.1 Signed-off-by:
Jens Axboe <axboe@kernel.dk> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Loading
-
mentioned in commit 54e8ad83
-
mentioned in commit 4af827c4
-
mentioned in commit 74a75f8a
-
mentioned in commit f15dc9f1
-
mentioned in commit 438d449f
-
mentioned in commit aa6d1b94
-
mentioned in commit 62bf10f5
-
mentioned in commit 1e4ebb32
-
mentioned in commit d10f30da
-
mentioned in commit 0db651ee
-
mentioned in commit 54c65223
-
mentioned in commit 45922b7e
-
mentioned in commit 2c2dbd22
-
mentioned in commit cc70146b
Please sign in to comment