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>
Tue, 21 Jan 2020 00:04:02 +0000 (17:04 -0700)
commitee7d46d9db19ded7b7222af95add63606318a480
treea57c640fdd439cc5b39c61471017faa884a58de6
parent9ef4f124894b7b9241a3cf5f9b40db0812783d66
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