io_uring: don't fail submit with overflow backlog
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 15 Apr 2021 12:40:50 +0000 (13:40 +0100)
committerJens Axboe <axboe@kernel.dk>
Sun, 18 Apr 2021 01:19:41 +0000 (19:19 -0600)
Don't fail submission attempts if there are CQEs in the overflow
backlog, but give away the decision making to the userspace. It
might be very inconvenient to the userspace, especially if
submission and completion are done by different threads.

We can remove it because of recent changes, where requests
are now not locked by the backlog, backlog entries are allocated
separately, so they take less space and cgroup accounted.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 55892e0227dd7634fe5b46db6489942292ee2000..81bfe91aed0afe4713bc09238720c0e14b20e959 100644 (file)
@@ -6664,12 +6664,6 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr)
 {
        int submitted = 0;
 
-       /* if we have a backlog and couldn't flush it all, return BUSY */
-       if (test_bit(0, &ctx->sq_check_overflow)) {
-               if (!__io_cqring_overflow_flush(ctx, false))
-                       return -EBUSY;
-       }
-
        /* make sure SQ entry isn't read before tail */
        nr = min3(nr, ctx->sq_entries, io_sqring_entries(ctx));