June 16, 2020 – June 19, 2020
Netdev 0x14 (Vancouver) **Postponed
Session
Reducing Kernel Queuing Delays with TCP Window Space Events
Speakers
David Goulet, Rob Jansen
Label
Nuts and Bolts
Session Type
Talk
Description
The combination of TCP auto-tuning and asynchronous
I/O event notifications (e.g., epoll) allows the Linux
kernel to generally sustain high-volume TCP
connections---even for connections with high
bandwidth-delay products (high link bandwidth and/or
high path latency). However, bufferbloat can quickly
become an issue when multiple such connections are in
use. In particular, high outbound kernel queuing
delays have been observed in the Tor anonymity
network, a large distributed system whose relays often
manage thousands of sockets---many of which are
simultaneously-active, high-volume TCP connections.
In this work, we propose a new notification event that
triggers when TCP is ready to send data on a socket
while seeking to better understand how it can help
applications to better manage network I/O and improve
performance. The new event supplements and extends the
current write event that triggers when a socket buffer
has free space, and the difference in semantics allows
more precise control over queuing to the application.
We describe the problem, detail a proposal for
extending epoll to support the new semantics
(including a code patch), and show the effect that
such a change could have on performance through a
small scale simulation.