Messages in this thread | | | Date | Wed, 28 Sep 2022 21:11:12 +0100 | Subject | Re: [PATCH net-next v4 00/27] io_uring zerocopy send | From | Pavel Begunkov <> |
| |
On 9/28/22 20:31, David Ahern wrote: > On 9/26/22 1:08 PM, Pavel Begunkov wrote: >> Tried it out, the branch below fixes a small problem, adds a couple >> of extra optimisations and now it actually uses registered buffers. >> >> https://github.com/isilence/iperf iou-sendzc > > thanks for the patch; will it pull it in. > >> Still, the submission loop looked a bit weird, i.e. it submits I/O >> to io_uring only when it exhausts sqes instead of sending right >> away with some notion of QD and/or sending in batches. The approach >> is good for batching (SQ size =16 here), but not so for latency. >> >> I also see some CPU cycles being burnt in select(2). io_uring wait >> would be more natural and perhaps more performant, but I didn't >> spend enough time with iperf to say for sure. > > ok. It will be a while before I have time to come back to it. In the > meantime it seems like some io_uring changes happened between your dev > branch and what was merged into liburing (compile worked on your branch > but fails with upstream). Is the ZC support in liburing now?
It is. I forgot to put a note that I also adapted your patches to uapi changes.No more notification slots but a zc send request now can post a second CQE if IORING_CQE_F_MORE is set in the first one. Better described in io_uring_enter(2) man, e.g.
https://git.kernel.dk/cgit/liburing/tree/man/io_uring_enter.2#n1063
-- Pavel Begunkov
| |