On 5/6/22 12:42 AM, Kanchan Joshi wrote: > On Thu, May 05, 2022 at 12:29:27PM -0600, Jens Axboe wrote: >> On 5/5/22 12:20 PM, Jens Axboe wrote: >>> On 5/5/22 12:06 AM, Kanchan Joshi wrote: >>>> This iteration is against io_uring-big-sqe brach (linux-block). >>>> On top of a739b2354 ("io_uring: enable CQE32"). >>>> >>>> fio testing branch: >>>> https://protect2.fireeye.com/v1/url?k=b0d23f72-d1592a52-b0d3b43d-74fe485fb347-02541f801e3b5f5f&q=1&e=ef4bb07a-7707-4854-819c-98abcabb5d2d&u=https%3A%2F%2Fgithub.com%2Fjoshkan%2Ffio%2Ftree%2Fbig-cqe-pt.v4 >>> >>> I folded in the suggested changes, the branch is here: >>> >>> https://protect2.fireeye.com/v1/url?k=40e9c3d0-2162d6f0-40e8489f-74fe485fb347-f8e801be1f796980&q=1&e=ef4bb07a-7707-4854-819c-98abcabb5d2d&u=https%3A%2F%2Fgit.kernel.dk%2Fcgit%2Flinux-block%2Flog%2F%3Fh%3Dfor-5.19%2Fio_uring-passthrough >>> >>> I'll try and run the fio test branch, but please take a look and see what >>> you think. >> >> Tested that fio branch and it works for me with what I had pushed out. >> Also tested explicit deferral of requests. > > Thanks for sorting everything out! I could test this out now only :-( > Fio scripts ran fine (post refreshing SQE128/CQE32 flag values;repushed fio). > > I think these two changes are needed in your branch: > > 1. since uring-cmd can be without large-cqe, we need to add that > condition in io_uring_cmd_done(). This change in patch 1 - > diff --git a/fs/io_uring.c b/fs/io_uring.c > index 884f40f51536..c24469564ebc 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -4938,7 +4938,10 @@ void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, ssize_t res2) > > if (ret < 0) > req_set_fail(req); > - __io_req_complete32(req, 0, ret, 0, res2, 0); > + if (req->ctx->flags & IORING_SETUP_CQE32) > + __io_req_complete32(req, 0, ret, 0, res2, 0); > + else > + io_req_complete(req, ret); > } > EXPORT_SYMBOL_GPL(io_uring_cmd_done); Ah yes, good catch, I missed that it's cqe32 exclusive right now. > 2. In the commit-message of patch 1, we should delete last line. > i.e. > "This operation can be issued only on the ring that is > setup with both IORING_SETUP_SQE128 and IORING_SETUP_CQE32 flags." > > And/or we can move this commit-message of patch 4. I killed the line. > You can either take these changes in, or I can respin the series. LMK. I folded it in and will process Christoph's suggestions. -- Jens Axboe