IOThread Virtqueue Mapping: Improving virtio-blk SMP scalability in QEMU by Stefan Hajnoczi

preview_player
Показать описание
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.

Slides:
---
Stefan Hajnoczi

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.
Рекомендации по теме