Re: [PATCH 1/5] io_uring: optimise iowq refcounting
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-08-14 19:38:28
On 8/14/21 1:36 PM, Pavel Begunkov wrote:
On 8/14/21 8:31 PM, Pavel Begunkov wrote:quoted
On 8/14/21 8:13 PM, Jens Axboe wrote:quoted
On 8/14/21 10:26 AM, Pavel Begunkov wrote:quoted
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...The refcount patches made this one atomic worse, and I just prefer to not regress, even if slightlyquoted
quoted
@@ -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.Agree. A separate patch, maybe?I mean it just would be a bit easier for me, instead of rebasing this series and not yet sent patches.
I think it should come before this series at least, or be folded into the first patch. So probably no way around the rebase, sorry... -- Jens Axboe