Thread (13 messages) read the whole thread 13 messages, 2 authors, 2021-08-15

Re: [PATCH 1/5] io_uring: optimise iowq refcounting

From: Jens Axboe <axboe@kernel.dk>
Date: 2021-08-14 19:13:44

On 8/14/21 10:26 AM, Pavel Begunkov wrote:
If a requests is forwarded into io-wq, there is a good chance it hasn't
been refcounted yet and we can save one req_ref_get() by setting the
refcount number to the right value directly.
Not sure this really matters, but can't hurt either. But...
quoted hunk ↗ jump to hunk
@@ -1115,14 +1115,19 @@ static inline void req_ref_get(struct io_kiocb *req)
 	atomic_inc(&req->refs);
 }
 
-static inline void io_req_refcount(struct io_kiocb *req)
+static inline void __io_req_refcount(struct io_kiocb *req, int nr)
 {
 	if (!(req->flags & REQ_F_REFCOUNT)) {
 		req->flags |= REQ_F_REFCOUNT;
-		atomic_set(&req->refs, 1);
+		atomic_set(&req->refs, nr);
 	}
 }
 
+static inline void io_req_refcount(struct io_kiocb *req)
+{
+	__io_req_refcount(req, 1);
+}
+
I really think these should be io_req_set_refcount() or something like
that, making it clear that we're actively setting/manipulating the ref
count.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help