]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: be smarter about waking multiple CQ ring waiters
authorJens Axboe <axboe@kernel.dk>
Fri, 6 Aug 2021 20:04:31 +0000 (14:04 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 23 Aug 2021 19:07:56 +0000 (13:07 -0600)
commite67a067900a82899d25ffd06ac3141729006d92e
tree81e227aaf7be0e414d36a7e9a5e7a746b37f5288
parent2beb6a06deb035080ae2cd701b83ae0b67996a3f
io_uring: be smarter about waking multiple CQ ring waiters

Currently we only wake the first waiter, even if we have enough entries
posted to satisfy multiple waiters. Improve that situation so that
every waiter knows how much the CQ tail has to advance before they can
be safely woken up.

With this change, if we have N waiters each asking for 1 event and we get
4 completions, then we wake up 4 waiters. If we have N waiters asking
for 2 completions and we get 4 completions, then we wake up the first
two. Previously, only the first waiter would've been woken up.

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