io_uring: improve poll completion performance
authorJens Axboe <axboe@kernel.dk>
Thu, 19 Dec 2019 19:06:02 +0000 (12:06 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 15 Jan 2020 22:05:01 +0000 (15:05 -0700)
commita5fbe3f1e2463e5ea26bd66218c1031d42b29f63
treeadc5c623e8ebc015dd8ba39721dd16e9ad4b5b3f
parentf05f1cecdb19c6a105a6b974cc2218173206e58f
io_uring: improve poll completion performance

For busy IORING_OP_POLL_ADD workloads, we can have enough contention
on the completion lock that we fail the inline completion path quite
often as we fail the trylock on that lock. Add a list for deferred
completions that we can use in that case. This helps reduce the number
of async offloads we have to do, as if we get multiple completions in
a row, we'll piggy back on to the poll_llist instead of having to queue
our own offload.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c