Dates
Monday, April 23, 2018 - 01:30pm to Monday, April 23, 2018 - 02:30pm
Location
NCS 120
Event Description

Title:
High Performance Data Center TCP Packet Processing

Abstract:
TCP is widely used for client-server communication in modern data centers. But
TCP packet handling is notoriously CPU intensive, accounting for an increasing
fraction of data center processing time. Techniques such as TCP segment offload,
kernel bypass, and RDMA are of limited benefit for the typical small, frequent
RPCs. These techniques can also compromise protocol agility, resource isolation,
overall system reliability, and complicate multi-tenancy.

I propose a unique refactoring of TCP functionality that splits processing
between a streamlined fast path for common operations, and an out-of-band slow
path. Protocol processing executes in the kernel on dedicated cores that enforce
correctness and resource isolation.  Applications asynchronously communicate
with the kernel through event queues, improving parallelism and cache
utilization. I show that my approach can increase RPC throughput by up to 4.1x
compared to Linux. The fast-path can be offloaded to a programmable NIC to
further improve performance and minimize CPU time for network processing. With
hardware offload, data packets are delivered directly from application to
application, while the NIC and kernel cooperate to enforce correctness and
resource isolation. I show that hardware offload can increase per-core packet
throughput by 10.7x compared to the Linux kernel TCP implementation.

Bio:
Antoine Kaufmann is a Ph.D. candidate in Computer Science and Engineering at the
University of Washington, where he is a member of the Computer Systems Lab.
Previously, he completed a Master's Degree from the Swiss Federal Institute
of Technology (ETH) in Zurich. Antoine's research area is operating systems and
networks, and much of his recent work has focused on improving application I/O
performance in the data center.

Event Title
Colloquium: High Performance Data Center TCP Packet Processing