Asynchronous I/O Stack: A Low-latency Kernel I/O Stack for Ultra-Low Latency SSDs
summary
An asynchronous I/O stack replaces synchronous kernel I/O steps with overlapped operations and a small set of engineering changes: per-core DMA-premapped page pool to avoid on-path DMA setup, deferring page-cache insertion until after submit, optional delayed IOMMU mapping, and a lightweight ldiot block layer that avoids merging and heavy allocations. A Linux prototype on NVMe/Optane achieves single-digit 4KB random read latency (7.6 µs), cuts overall I/O latency by ~15–33%, fsync latency by up to 26%, and boosts RocksDB IOPS 11–44% and Filebench/OLTP throughput 15–30%.
AI-written summary · about
chapters (18)
- 0:00Intro
- 0:31Storage Performance Trends
- 1:29Synchronous I/O vs. Asynchronous I/O
- 2:22Read Path Overview
- 2:45Write Path Overview
- 3:47Analysis of Vanilla Read Path
- 5:07Asynchronous Page Allocation / DMA Mapping
- 6:16Lazy Page Cache Insertion
- 7:03Lazy DMA Unmapping
- 7:50Linux Multi-queue Block I/O Layer
- 9:58Light-weight Block / Layer
- 10:10Read Path Comparison
- 10:36Analysis of Vanilla Fsync Path (Ext4 Ordered Mode)
- 12:08Fsync Path Comparison (Ext4 Ordered Mode)
- 12:20Experimental Setup
- 12:39FIO Performance (Random Read)
- 13:35FIO Performance (Random Write Fsync, Ext4 Ordered)
- 14:29Conclusion
related talks
17mλ-IO: A Unified IO Stack for Computational Storage
22mI/O in a Flash: Evolution of ONTAP to Low-Latency SSDs
40mAchieving the Ultimate Performance with KVM
19mP2CACHE: Exploring Tiered Memory for In-Kernel File Systems Caching
21mStreamCache: Revisiting Page Cache for File Scanning on Fast Storage Devices
26mAnalysis of AMD HW-assisted vIOMMU Implementation and Performance
22mCombining Buffered I/O and Direct I/O in Distributed File Systems
19mBest I/O is No I/O
