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