public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCH 5.13 0/7] ctx wide rsrc nodes
@ 2021-03-23 14:13 Pavel Begunkov
  2021-03-23 14:13 ` [PATCH 1/7] io_uring: name rsrc bits consistently Pavel Begunkov
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Pavel Begunkov @ 2021-03-23 14:13 UTC (permalink / raw)
  To: Jens Axboe, io-uring

The main idea here is to make make rsrc nodes (aka ref nodes) to be per
ctx rather than per rsrc_data, that is a requirement for having multiple
resource types. All the meat to it in 7/7.

Also rsrc API is complicated and too misuse. 1-6 may be considered to
be preps but also together with 7/7 gradually make the API simpler and
so more resilient.

The only nuisance is additional handling in ctx_free in 7/7, and added
for that struct io_rsrc_node::completion, because now we always retain a
valid node in ctx after first files_register, and so we need to kill it
in the end. Ideas how to make it better?

Pavel Begunkov (7):
  io_uring: name rsrc bits consistently
  io_uring: simplify io_rsrc_node_ref_zero
  io_uring: use rsrc prealloc infra for files reg
  io_uring: encapsulate rsrc node manipulations
  io_uring: move rsrc_put callback into io_rsrc_data
  io_uring: refactor io_queue_rsrc_removal()
  io_uring: ctx-wide rsrc nodes

 fs/io_uring.c | 253 +++++++++++++++++++++++---------------------------
 1 file changed, 115 insertions(+), 138 deletions(-)

-- 
2.24.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-03-23 14:18 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-23 14:13 [PATCH 5.13 0/7] ctx wide rsrc nodes Pavel Begunkov
2021-03-23 14:13 ` [PATCH 1/7] io_uring: name rsrc bits consistently Pavel Begunkov
2021-03-23 14:13 ` [PATCH 2/7] io_uring: simplify io_rsrc_node_ref_zero Pavel Begunkov
2021-03-23 14:13 ` [PATCH 3/7] io_uring: use rsrc prealloc infra for files reg Pavel Begunkov
2021-03-23 14:13 ` [PATCH 4/7] io_uring: encapsulate rsrc node manipulations Pavel Begunkov
2021-03-23 14:13 ` [PATCH 5/7] io_uring: move rsrc_put callback into io_rsrc_data Pavel Begunkov
2021-03-23 14:13 ` [PATCH 6/7] io_uring: refactor io_queue_rsrc_removal() Pavel Begunkov
2021-03-23 14:13 ` [PATCH 7/7] io_uring: ctx-wide rsrc nodes Pavel Begunkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox