Linux 5.0: io_uring and the kernel's new interfaces

Linux kernel 5.0 introduces io_uring for high-performance async I/O, Adiantum encryption for limited hardware and energy-aware scheduling to optimise power consumption.

Open Source Open SourceLinuxKernelio_uringPerformance

A new version number, new interfaces

Linux kernel 5.0, released in March 2019, marks a version number change that Linus Torvalds described as purely cosmetic — the 4.x counter had simply grown too large. But behind the round number lie substantial innovations in the interfaces between user space and kernel, innovations that address bottlenecks accumulated over nearly twenty-eight years of development.

The kernel’s progression remains steady: after the foundations laid with the 2.6 series and the adoption of time-based releases, every development cycle continues to refine critical areas — CPU, memory, I/O, networking — responding to the demands of ever-evolving hardware and workloads.

io_uring: async I/O without system call overhead

The most significant addition is io_uring, an asynchronous I/O interface designed by Jens Axboe to overcome the limitations of existing APIs. Traditional interfaces — synchronous read/write or the kernel’s aio (async I/O) — require a system call for every operation, and the cost of transitioning between user space and kernel becomes the dominant bottleneck in high-throughput workloads.

io_uring introduces two ring buffers in shared memory between application and kernel: a submission queue where the application inserts requests and a completion queue where the kernel deposits results. After initial setup, I/O operations proceed without further syscalls. The outcome is a dramatic reduction in overhead: in NVMe benchmarks, io_uring reaches throughput close to the hardware limit, surpassing aio by a significant factor.

Adiantum and encryption for everyone

Adiantum is an encryption algorithm developed by Google for devices lacking hardware AES instructions — typically smartphones and embedded devices with low-cost ARM processors. Adiantum uses ChaCha12 and NHPOLY1305 to deliver disk encryption with acceptable performance even on limited hardware, making full-disk encryption accessible to billions of devices that otherwise could not afford it.

Energy-aware scheduling

Energy-aware scheduling (EAS) integrates knowledge of the processor’s energy topology into the kernel. On ARM big.LITTLE systems and similar heterogeneous architectures, the scheduler can assign lightweight processes to low-power cores and reserve high-performance cores only when needed. The result is measurable energy savings without noticeable responsiveness sacrifices — a crucial goal for battery-powered devices.

Optimisation as a continuous process

With nearly three decades of development behind it, the Linux kernel demonstrates that optimisation is not a destination but a process. Each generation of hardware brings new constraints and new opportunities: io_uring rethinks I/O for modern storage, Adiantum extends security to budget devices, EAS adapts scheduling to the reality of heterogeneous processors.

Link: kernel.org

Need support? Under attack? Service Status
Need support? Under attack? Service Status