]> 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)
commitf09cefac0daab78ab617b61a5642d3314c13e9bc
tree81e227aaf7be0e414d36a7e9a5e7a746b37f5288
parentaee6e5fd9b4a8a5990b74aaa7f1999fdef1ec5fa
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