Skip to content

scrap 24 bytes from io_kiocb

Pavel Begunkov io-uring 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest9 patches 1 replyIn review
  2. v1 RFC9 patches 8 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9io_uring: share completion list w/ per-op spacefs/io_uring.c+20 -70 replies
2/9io_uring: rename ctx->poll into ctx->iopollfs/io_uring.c+18 -180 replies
3/9io_uring: use inflight_entry list for iopoll'ingfs/io_uring.c+15 -110 replies
4/9io_uring: use completion list for CQ overflowfs/io_uring.c+8 -70 replies
5/9io_uring: add req->timeout.listfs/io_uring.c+12 -100 replies
6/9io_uring: remove init for unused listfs/io_uring.c+0 -10 replies
7/9io_uring: use non-intrusive list for deferfs/io_uring.c+18 -70 replies
8/9io_uring: remove sequence from io_kiocbfs/io_uring.c+30 -140 replies
9/9io_uring: place cflags into completion datafs/io_uring.c+5 -50 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/9] scrap 24 bytes from io_kiocb

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.

This depends on "rw iovec copy cleanup" series

v2: [1] invalid kfree() in the end of io_{write,read}()
handled by "rw iovec copy cleanup" series
[1] rename io_cleanup_req() -> __io_clean_op()
[3] rename iopoll_list -> inflight_entry (Jens)
[8] correct sequence types,
[8] return back sequence-based fast check in defer

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 iopoll'ing
io_uring: use completion list for CQ overflow
io_uring: add req->timeout.list
io_uring: remove init for unused list
io_uring: use non-intrusive list for defer
io_uring: remove sequence from io_kiocb
io_uring: place cflags into completion data

 fs/io_uring.c | 198 +++++++++++++++++++++++++++++++-------------------
 1 file changed, 122 insertions(+), 76 deletions(-)
Signature · 1 line
2.24.0