[PATCH for-next 0/7] reworking io_uring's poll and internal poll

Pavel Begunkov
2021-12-15T22:09:05Z

That's mostly a bug fixing set, some of the problems are listed in 5/7.
The main part is 5/7, which is bulky but at this point it's hard (if
possible) to do anything without breaking a dozen of things on the
way, so I consider it necessary evil.
It also addresses one of two problems brought up by Eric Biggers
for aio, specifically poll rewait. There is no poll-free support yet.

As a side effect it also changes performance characteristics, adding
extra atomics but removing io_kiocb referencing, improving rewait, etc.
There are also drafts on optimising locking needed for hashing, those
will go later.

Performance measurements is a TODO, but the main goal lies in
correctness and maintainability.

Pavel Begunkov (7):
io_uring: remove double poll on poll update
io_uring: refactor poll update
io_uring: move common poll bits
io_uring: kill poll linking optimisation
io_uring: poll rework
io_uring: single shot poll removal optimisation
io_uring: use completion batching for poll rem/upd

fs/io_uring.c | 649 ++++++++++++++++++++++----------------------------
1 file changed, 287 insertions(+), 362 deletions(-)

--
2.34.0