Make io_kiocb slimmer by 24 bytes mainly by revising lists usage. The drawback is adding extra kmalloc in draining path, but that's a slow path, so meh. It also frees some space for the deferred completion path if would be needed in the future, but the main idea here is to shrink it to 3 cachelines in the end. I'm not happy yet with a few details, so that's not final, but it would be lovely to hear some feedback. Pavel Begunkov (9): io_uring: share completion list w/ per-op space io_uring: rename ctx->poll into ctx->iopoll io_uring: use inflight_entry list for iopolling io_uring: use competion list for CQ overflow io_uring: add req->timeout.list io_uring: remove init for unused list io_uring: kill rq->list and allocate it on demand io_uring: remove sequence from io_kiocb io_uring: place cflags into completion data fs/io_uring.c | 188 +++++++++++++++++++++++++++++++------------------- 1 file changed, 116 insertions(+), 72 deletions(-) -- 2.24.0