IO_uring Network Zero-Copy Send Is Boasting Mighty Speed-Ups
Early patches providing for IO_uring zero-copy send support for the Linux kernel's networking subsystem is looking extremely promising for greater throughput.
Developer Pavel Begunkov posted the set of twelve patches today working on this zero-copy send support for IO_uring with the networking subsystem. These initial patches are marked as a "request for comments" as some items are still being sorted out with the code.
This IO_uring zero-copy send support is currently for IPv4/UDP handling but there are TCP patches in the works too. While still early-stage work and in flux, the performance results have us quite excited over the prospects:
Great seeing all of the kernel work happening around IO_uring for storage and networking. See this patch series if interested in all of the details.
Developer Pavel Begunkov posted the set of twelve patches today working on this zero-copy send support for IO_uring with the networking subsystem. These initial patches are marked as a "request for comments" as some items are still being sorted out with the code.
This IO_uring zero-copy send support is currently for IPv4/UDP handling but there are TCP patches in the works too. While still early-stage work and in flux, the performance results have us quite excited over the prospects:
Benchmarking udp (65435 bytes) with a dummy net device (mtu=0xffff): The best case io_uring=116079 MB/s vs msg_zerocopy=47421 MB/s, or 2.44 times faster.
....
The worst case for io_uring is still 1.88 times faster than msg_zerocopy, and there are a couple of "easy" optimisations left out from the patchset. For 4096 bytes payload zc is only slightly outperforms non-zc version, the larger payload the wider gap.
Great seeing all of the kernel work happening around IO_uring for storage and networking. See this patch series if interested in all of the details.
37 Comments