io_uring: optimise head checks in io_get_sqring()
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 30 Dec 2019 18:24:45 +0000 (21:24 +0300)
committerJens Axboe <axboe@kernel.dk>
Wed, 15 Jan 2020 22:05:02 +0000 (15:05 -0700)
commit39ea15b1cb813f3f28007c3f0acb298ae3fe23f7
tree92e63485b6beb5f392070810a9e4195101f09c23
parenta13e586a7ebad376653fa82274c936c4f18411ef
io_uring: optimise head checks in io_get_sqring()

A user may ask to submit more than there is in the ring, and then
io_uring will submit as much as it can. However, in the last iteration
it will allocate an io_kiocb and immediately free it. It could do
better and adjust @to_submit to what is in the ring.

And since the ring's head is already checked here, there is no need to
do it in the loop, spamming with smp_load_acquire()'s barriers

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