IO_uring Network Zero-Copy Send Is Boasting Mighty Speed-Ups

Written by Michael Larabel in Linux Networking on 30 November 2021 at 02:27 PM EST. 37 Comments
LINUX NETWORKING
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:
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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week