Asynchronous System Calls
Zach Brown (email@example.com)
The Linux kernel provides a system call interface for asynchronous I/O (AIO)
which has not been widely adopted. It supports few operations and provides
asynchronous submission and completion of those operations in limited
circumstances. It has succeeded in providing cache-avoiding reads and writes
to regular files, used almost exclusively by database software. Maintaining
this minimal functionality has proven to be disproportionately difficult which
has in turn discouraged adding support for other operations.
Recently Ingo Molnar introduced a subsystem called syslets. Syslets give user
space a new system call interface for performing asynchronous operations. They
support efficient asynchronous submission and completion of almost every
existingsystem call interface in the kernel.
This paper documents the path that lead from the limits of the existing AIO
implementation to syslets. Syslets have the potential to both reduce the cost
and broaden the functionality of AIO support in the Linux kernel.