io_uring/io-wq: handle !sysctl_hung_task_timeout_secs
If the hung_task_timeout sysctl is set to 0, then we'll end up busy
looping inside io_wq_exit_workers() after an earlier commit switched to
using wait_for_completion_timeout(). Use the maximum schedule timeout
value for that case.
Fixes: 1f293098a3 ("io_uring/io-wq: don't trigger hung task for syzbot craziness")
Reported-by: Chris Mason <clm@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
1edf0891d0
commit
816095894c
1 changed files with 2 additions and 0 deletions
|
|
@ -1340,6 +1340,8 @@ static void io_wq_exit_workers(struct io_wq *wq)
|
|||
* up waiting more than IO_URING_EXIT_WAIT_MAX.
|
||||
*/
|
||||
timeout = sysctl_hung_task_timeout_secs * HZ / 2;
|
||||
if (!timeout)
|
||||
timeout = MAX_SCHEDULE_TIMEOUT;
|
||||
warn_timeout = jiffies + IO_URING_EXIT_WAIT_MAX;
|
||||
do {
|
||||
if (wait_for_completion_timeout(&wq->worker_done, timeout))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue