io_uring: do task_work_run() during iopoll
There are a lot of new users of task_work, and some of task_work_add() may happen while we do io polling, thus make iopoll from time to time to do task_work_run(), so it doesn't poll for sitting there reqs. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
6795c5aba2
commit
3adfecaa64
@ -2052,6 +2052,8 @@ static int io_iopoll_check(struct io_ring_ctx *ctx, unsigned *nr_events,
|
||||
*/
|
||||
if (!(++iters & 7)) {
|
||||
mutex_unlock(&ctx->uring_lock);
|
||||
if (current->task_works)
|
||||
task_work_run();
|
||||
mutex_lock(&ctx->uring_lock);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user