My KVM Forum 2025 talk "Making io_uring Pervasive in QEMU" is now available on YouTube. The slides are also available here (PDF).
This talk is about integrating Linux io_uring into QEMU's event loop to enable performance optimizations and use new kernel features available through io_uring. This topic is also relevant for other I/O-intensive applications (network services, software-defined networking or storage systems, databases, etc) that require modifications in order to take advantage of io_uring. The challenge is usually how to move from a reactor-based event loop that monitors file descriptors to a proactor-based event loop that waits for asynchronous operation completion. In QEMU this can be solved by keeping existing fd monitoring users while introducing an API for io_uring request submission that new code can use.