public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCH 0/5] skip request refcounting
@ 2021-08-10 12:05 Pavel Begunkov
  2021-08-10 12:05 ` [PATCH 1/5] io_uring: move req_ref_get() and friends Pavel Begunkov
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Pavel Begunkov @ 2021-08-10 12:05 UTC (permalink / raw)
  To: Jens Axboe, io-uring

With some tricks, we can avoid refcounting in most of the cases and
so save on atomics. The series implements this optimisation. 1-4 are
simple enough preparations, the biggest part is 5/5. Would be great
to have extra pair of eyes on it.

Jens tried out a prototype before, apparently it gave ~3% win for
the default read test. Not much has changed since then, so I'd
expect same result, and also hope that it should be of even greater
benefit to multithreaded workloads.

Pavel Begunkov (5):
  io_uring: move req_ref_get() and friends
  io_uring: delay freeing ->async_data
  io_uring: protect rsrc dealloc by uring_lock
  io_uring: remove req_ref_sub_and_test()
  io_uring: request refcounting skipping

 fs/io_uring.c | 176 +++++++++++++++++++++++++++++---------------------
 1 file changed, 101 insertions(+), 75 deletions(-)

-- 
2.32.0


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

end of thread, other threads:[~2021-08-10 13:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-10 12:05 [PATCH 0/5] skip request refcounting Pavel Begunkov
2021-08-10 12:05 ` [PATCH 1/5] io_uring: move req_ref_get() and friends Pavel Begunkov
2021-08-10 12:05 ` [PATCH 2/5] io_uring: delay freeing ->async_data Pavel Begunkov
2021-08-10 12:05 ` [PATCH 3/5] io_uring: protect rsrc dealloc by uring_lock Pavel Begunkov
2021-08-10 12:05 ` [PATCH 4/5] io_uring: remove req_ref_sub_and_test() Pavel Begunkov
2021-08-10 12:05 ` [PATCH 5/5] io_uring: request refcounting skipping Pavel Begunkov
2021-08-10 13:30   ` Pavel Begunkov

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