Comparing epoll and io_uring for Asynchronous I/O in Linux
By
Sibexico
Summary
A technical article comparing epoll and io_uring as asynchronous I/O mechanisms in Linux. The author describes their journey building a reverse proxy server called TinyGate with students, starting with a simple worker-based model, then upgrading to epoll for significant performance gains, and finally rewriting with io_uring. The article provides an overview of both queueing systems, explaining their strengths and limitations for handling asynchronous I/O operations.
Source
Key quotes
· 4 pulledBut my students weren't as happy as I was - they wanted to build something genuinely useful, and they were really disappointed that our 'product' had strong architectural limits and couldn't outperform titans like nginx and haproxy.
So they literally forced me to research together how those tools work under the hood and how to handle asynchronous I/O to cut down on the heavy overhead…
It still lost to nginx/haproxy in benchmarks, but it had a dramatic performance boost compared to the first version.
But epoll isn't perfect either (as I'll explain below), and we eventually switched to io_uring, which led to a full rewrite of our project from scratch, again…
You might also wanna read
Rust smoltcp as an alternative TCP/IP stack for ESP-IDF
Attackers Bypass Next-Gen EDR Using Windows Error Reporting and io_uring Techniques
This article examines advanced EDR (Endpoint Detection and Response) bypass techniques used by attackers, focusing on two specific methods:
undercodetesting.com·10d agoAttackers Bypass Next-Gen EDR Using Windows Error Reporting and io_uring Techniques
This article examines advanced EDR (Endpoint Detection and Response) bypass techniques used by attackers, focusing on two specific methods:
undercodetesting.com·10d agoPython 3.14 Delivers JIT Compiler and GIL-Free Concurrency
Python 3.14 introduces two major features: a new JIT (Just-In-Time) compiler and the removal of the Global Interpreter Lock (GIL), enabling
Bad Epoll (CVE-2026-46242): Critical Linux Kernel Race Condition Enables Local Privilege Escalation to Root
A newly disclosed Linux kernel vulnerability (CVE-2026-46242) called "Bad Epoll" resides in the eventpoll subsystem, allowing any unprivileg
undercodetesting.com·4d ago
Comments
Sign in to join the conversation.
No comments yet. Be the first.