Linux 5.17 To Boast A Big TCP Performance Optimization

Written by Michael Larabel in Linux Networking on 16 November 2021 at 09:19 AM EST. Add A Comment


While the Linux 5.16 merge window just ended and that kernel won't be out until the tail end of the calendar year, already for Linux 5.17 new material is beginning to accumulate in the respective subsystem development trees... One set of changes merged this morning from Google can provide a sizable performance win around TCP performance in the datacenter.

Merged this morning by David Miller is these TCP optimizations from Eric Dumazet, a Google engineer.

The most exciting part of these optimizations is this patch in the TCP code to defer SKB freeing after the socket lock is released. The existing kernel code was found to introduce excess latency that can be avoided by not carrying out the SKB freeing while the socket lock is held. Instead they will be freed after the socket lock is released or directly from the BH handler.

This yields "much improved performance" at least for high volume TCP traffic in the data-center. On a 100Gbit NIC, TCP network throughput tests with a 1500 MTU size went from 55 to 65 Gbit while for a 4096+ MTU went from 82 to 95 Gbit.

While only TCP is touched for now, the merge does note that a similar optimization can likely be extended to other protocols. These TCP optimizations will be found in Linux 5.17 next year.