This is the source code repository for the paper entitled "Asynchronous I/O Stack: A Low-latency Kernel I/O Stack for Ultra-Low Latency SSDs" in the 2019 USENIX Annual Technical Conference
- Enable
CONFIG_AIOSandCONFIG_INTEL_IOMMU(set to y). - Enable
CONFIG_NVME_COREandCONFIG_BLK_DEV_NVME(set to y, not module). - Open a file using a
O_AIOSor040000000flag. The file should be located in Ext4 file system and in an NVMe SSD. - Access the file using
read(), pread(), write(), pwrite(), fsync() and fdatasync().
- The source code is not tested with SSDs having a volatile write cache. All tested NVMe SSDs have the non-volatile write cache feature.
- The current implementation supports only one NVMe SSD at a time. If you have multiple NVMe SSDs, the macro
DEV_INSTANCEindrivers/nvme/host/pci.cshould be properly adjusted to specify an NVMe SSD you want to apply AIOS to. - The current implementation does not support the
mmap()path.