On 5/13/22 18:24, Pavel Begunkov wrote:
If an opcode handler semi-reliably returns -EAGAIN, io_wq_submit_work()
Hi Pavel, When would it return -EAGAIN in non-IOPOLL mode?
might continue busily hammer the same handler over and over again, which is not ideal. The -EAGAIN handling in question was put there only for IOPOLL, so restrict it to IOPOLL mode only. Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> --- fs/io_uring.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/io_uring.c b/fs/io_uring.c index e01f595f5b7d..3af1905efc78 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -7319,6 +7319,8 @@ static void io_wq_submit_work(struct io_wq_work *work) * wait for request slots on the block side. */ if (!needs_poll) { + if (!(req->ctx->flags & IORING_SETUP_IOPOLL)) + break; cond_resched(); continue; }