My FOSDEM 2021 talk "The Evolution of File Descriptor Monitoring in Linux: From select(2) to io_uring" is now available:
- Video (webm): https://video.fosdem.org/2021/M.misc/file_descriptor_monitoring.webm
- Slides (PDF): https://vmsplice.net/~stefan/stefanha-fosdem-2021.pdf
- Benchmark code: https://github.com/stefanha/fdmonbench
The talk compares the file descriptor monitoring system calls available in Linux and discusses their design. Benchmark results show how well they scale when there are many file descriptors. I hope this is a useful overview to this important kernel feature that GUI applications, network services, and many other programs rely on.
If you are interested in API design and performance, this talk highlights how different approaches like stateless vs stateful APIs can affect performance and how to minimize the number of API calls through careful design.
Enjoy!