QEMUのvirtioデバイス
大きく分けて、virtio, vhost, vhost-userの3種類ある。virtioはゲストとホストのカーネルを通過することになるが、vhostでは呼び出しフローが簡略化されている。virtioとvhostの違い は別の記事に書いた。また、vhostはカーネルで実装されるが、vhost-userはユーザープロセスで実装される。
- virtio
- vhost
- vhost-user
virtio対応のデバイスは
- virtio-net: virtio-net-pci
- virtio-blk: virtio-blk-pci
- virtio-scsi: virtio-scsi-pci
- virtio-gpu: virtio-vga?
- virtio-serial: virtio-serial-pci
- virtio-bus: ?
- virtio-9p: virtio-9p-pci
- virtio-balloon: virtio-baloon-pci
- virtio-console (互換性のため残っているけどvirtio-serialと同じ)
- ?: virtio-rng-pci
virtio-blkが先にあって、virtio-scsiが置き換えとして作られた。 https://www.belbel.or.jp/opensuse-manuals_ja/cha-qemu-host.html
QEMU
-vhost-crypto -vhost-net -vhost-vsock -vhost-scsi -vhost-kernel -vhost-user -vhost-vdpa
see https://github.com/qemu/qemu/blob/f345abe36527a8b575482bb5a0616f43952bf1f4/configure#L1260-L1266