2024-09-23 –, Hall C+D
Guests with multiple vCPUs are commonplace and can submit I/O requests from any vCPU. While virtio-blk supports exposing multiple queues to the guest, QEMU processed all queues in a single thread until recently.
This talk introduces the virtio-blk IOThread Virtqueue Mapping feature added in QEMU 9.0. This feature improves scalability by processing queues in a user-configurable number of threads. Removing the single threaded bottleneck narrows the performance gap between bare metal and virtualization.
Benchmark results are presented to quantify the impact on performance. Configuration topics like choosing the number of threads are discussed. Finally, open issues and future support in virtio-scsi and other devices types are also covered.
Stefan works on QEMU and Linux VIRTIO drivers in Red Hat's Virtualization team. He focuses on storage and has worked on virtiofs, virtio-vsock, and tracing in the past. A QEMU contributor since 2010, he organizes open source internships for QEMU and is part of QEMU's Technical Leadership Committee.