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