.. toctree::
:maxdepth: 1
+ devices/virtio/index.rst
+
devices/can.rst
+ devices/canokey.rst
devices/ccid.rst
devices/cxl.rst
- devices/vfio-user.rst
- devices/ivshmem.rst
+ devices/igb.rst
devices/ivshmem-flat.rst
+ devices/ivshmem.rst
devices/keyboard.rst
devices/net.rst
devices/nvme.rst
- devices/usb.rst
- devices/vhost-user.rst
- devices/virtio-gpu.rst
- devices/virtio-pmem.rst
- devices/virtio-snd.rst
- devices/vhost-user-input.rst
- devices/vhost-user-rng.rst
- devices/canokey.rst
devices/usb-u2f.rst
- devices/igb.rst
+ devices/usb.rst
+ devices/vfio-user.rst
QEMU includes a ``vfio-user`` client. The ``vfio-user`` specification allows for
implementing (PCI) devices in userspace outside of QEMU; it is similar to
-``vhost-user`` in this respect (see :doc:`vhost-user`), but can emulate arbitrary
+``vhost-user`` in this respect (see :doc:`virtio/vhost-user`), but can emulate arbitrary
PCI devices, not just ``virtio``. Whereas ``vfio`` is handled by the host
kernel, ``vfio-user``, while similar in implementation, is handled entirely in
userspace.
--- /dev/null
+VirtIO Devices
+==============
+
+VirtIO devices are paravirtualized devices designed to be efficient to
+emulate and virtualize. Unless you are specifically trying to exercise
+a driver for some particular hardware they are the recommended device
+models to use for virtual machines.
+
+The `VirtIO specification`_ is an open standard managed by OASIS. It
+describes how a *driver* in a guest operating system interacts with
+the *device* model provided by QEMU. Multiple Operating Systems
+support drivers for VirtIO with Linux perhaps having the widest range
+of device types supported.
+
+The device implementation can either be provided wholly by QEMU, or in
+concert with the kernel (known as *vhost*). The device implementation
+can also be off-loaded to an external process via :ref:`vhost user
+<vhost_user>`.
+
+.. toctree::
+ :maxdepth: 1
+
+ virtio-gpu.rst
+ virtio-pmem.rst
+ virtio-snd.rst
+ vhost-user.rst
+ vhost-user-input.rst
+ vhost-user-rng.rst
+
+.. _VirtIO specification: https://docs.oasis-open.org/virtio/virtio/v1.3/virtio-v1.3.html