io_uring: never overflow io_aux_cqe
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 11 Aug 2023 12:53:45 +0000 (13:53 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 11 Aug 2023 16:42:57 +0000 (10:42 -0600)
commitb6b2bb58a75407660f638a68e6e34a07036146d0
treee6c9a49099ab2542577003a22c85af3dee481427
parent056695bffa4beed5668dd4aa11efb696eacb3ed9
io_uring: never overflow io_aux_cqe

Now all callers of io_aux_cqe() set allow_overflow to false, remove the
parameter and not allow overflowing auxilary multishot cqes.

When CQ is full the function callers and all multishot requests in
general are expected to complete the request. That prevents indefinite
in-background grows of the overflow list and let's the userspace to
handle the backlog at its own pace.

Resubmitting a request should also be faster than accounting a bunch of
overflows, so it should be better for perf when it happens, but a well
behaving userspace should be trying to avoid overflows in any case.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/bb20d14d708ea174721e58bb53786b0521e4dd6d.1691757663.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c
io_uring/io_uring.h
io_uring/net.c
io_uring/poll.c
io_uring/timeout.c