2025-09-28 –, D2
Since my previous talk about this topic in 2022 major improvements
in the OpenBSD network stack have been achieved. The socket API
has been unlocked in the kernel. This means that multiple userland
threads can do system calls on distinct sockets in parallel on
different CPUs. Input and output processing of packets in the
protocol layer can also run in parallel. This talk will give insight
which locks are used to prevent chaos. TCP has much more state and
timeouts which require other locking strategies than UDP. Multiple
input and output queues in the network drivers allow to distribute
packets over CPUs. Measurements make this effect visible and help
to identify bottlenecks.
Alexander Bluhm is an OpenBSD developer since 2007. His main area
of work is the network stack. In the recent years focus was on
multi processor performance. He is employed at genua, a German
firewall manufacturer, who wants to speed up its OpenBSD based
products. Other areas of interest are the errata process, maintaining
Perl ports, and fixing all kinds of bugs.