Session

Real world tips, tricks, and notes of using epoll-based busy polling to reduce latency

Instructors

Joe Damato

Label

Nuts and Bolts

Session Type

Tutorial

Contents

Description

epoll-based busy polling can be a powerful way to reduce latency in network applications. Using it in your app is now easier since it can be enabled on a per-epoll context basis, but using it is still tricky without doing a deeper dive of the kernel networking code.

This talk will show what I learned trying to modify an open source application to use epoll-based busy polling, how to get it working on a machine with multiple NICs, what NIC features you may want to use alongside busy polling (like custom RSS contexts, per queue coalescing, etc), which metrics are helpful to measure in a production setting, and future directions the kernel can take to enhance busy polling further.