As a hypervisor, I/O performance is a weak area today in Linux. Since all I/O for guests are generated from QEMU, we are largely limited by the I/O interfaces provided by the Linux kernel to userspace. The current set of storage I/O interfaces have proven to not map well to QEMU’s requirements.
This talk will cover how we are currently using the storage I/O interfaces provided by Linux. It will focus on the mechanisms to generate multiple asynchonrous, scatter/gather I/O requests to buffered and non-buffered files along with physical devices. It will also cover topics like request tagging and barriers.
The goal of the talk will be to generate discussion about proposed future interfaces (syslets, acalls, etc.) and to discuss whether current interfaces like linux-aio are at all salvagable.
Virtualization is perhaps one of the more demanding userspace I/O workloads available so it serves as a particularly good canary in evaluating future I/O interfaces.