Linux 6.8 Network Optimizations Can Boost TCP Performance For Many Concurrent Connections By ~40%

Written by Michael Larabel in Linux Networking on 9 January 2024 at 02:23 PM EST. 76 Comments
LINUX NETWORKING
Beyond the usual new wired/wireless network hardware support and the other routine churn in the big Linux networking subsystem, the Linux 6.8 kernel is bringing some key improvements to the core networking code that can yield up to a ~40% improvement for TCP performance when encountering many concurrent network connections.

First up, there's been an analysis and reorganization of core networking structures. This effort has been around optimizing cacheline consumption and adding safeguards to ensure future changes don't regress. In turn this optimizing of core networking structures is causing TCP performance with many concurrent connections to increase by as much as 40% or more!

Coco Li of Google explained of their cachline optimization effort to the networking code:
"Currently, variable-heavy structs in the networking stack is organized chronologically, logically and sometimes by cache line access.

This patch series attempts to reorganize the core networking stack variables to minimize cacheline consumption during the phase of data transfer. Specifically, we looked at the TCP/IP stack and the fast path definition in TCP."

Their results are mighty impressive for being done to the core networking code:

Networking performance optimization


A hell of an improvement especially for the AMD EPYC servers. Kudos to those at Google continuing to push these very enticing low-level kernel optimizations.

AMD EPYC CPU with network switches


Meanwhile new Ethernet driver hardware support in Linux 6.8 includes the Octeon CN10K devices, Broadcom 5760X P7, Qualcomm SM8550 SoC, and Texas Instrument DP83TG720S PHY. On the Bluetooth side is new driver support for the IMC Networks Bluetooth radio.

As we've seen recently with efforts to drop old/obsolete network drivers, several outdated WiFi drivers were removed for Linux 6.8. Newly-dropped Wifi support include Libertas 16-bit PCMCIA support, Atmel at76c50x drivers, HostAP ISA/PCMCIA style 802.11b driver, zd1201 802.11b USB dongles, Orinoco ISA/PCMCIA 802.11b driver, Aviator/Raytheon driver, Planet WL3501 driver, and the RNDIS USB 802.11b driver.

When it comes to network driver improvements in Linux 6.8, the Intel high-speed NIC driver has added support for temperature and clock information reporting, among other random improvements throughout the many network drivers. NVIDIA Mellanox Ethernet data center switches can also now enjoy firmware updates without a reboot. On the WiFi side there remains ongoing WiFi 7 work and Extremely High Throughput (EHT) improvements.

The full list of new networking patches for the Linux 6.8 kernel merge window can be found via today's pull request.
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