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>
Tue, 21 Jan 2020 00:03:59 +0000 (17:03 -0700)
commite94f141bd248ebdadcb7351f1e70b31cee5add53
treea2dbf2db8721c44c10007d707fbc5794b35eb424
parentad3eb2c89fb24d14ac81f43eff8e85fece2c934d
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