Kernel Asynchronous I/O (AIO) Support for Linux

Overview

AIO enables even a single application thread to overlap I/O operations with other processing, by providing an interface for submitting one or more I/O requests in one system call (io_submit()) without waiting for completion, and a separate interface (io_getevents()) to reap completed I/O operations associated with a given completion group.

Support for kernel AIO has been included in the 2.6 Linux kernel.

What Works?

What Does Not Work?

Additional functionality is available HERE


Q. Where can I find AIO libraries that utilize kernel AIO on Linux ?

A. You need to install the libaio package if you are writing AIO applications which use the native AIO interfaces (libaio-0.3.99)

Q. Is AIO functionality available for 2.4 kernels?

A. Patches for 2.4 can be found HERE . Also check out the original Linux-AIO home page.


Reading About the Linux Kernel AIO Design

Future Work


Benchmarks and Testing

Performance testing/microbenchmarking Other tests AIO tests:

Performance Results