.. _vhost_user:

vhost-user back ends
--------------------

vhost-user back ends are way to service the request of VirtIO devices
outside of QEMU itself. To do this there are a number of things
required.

vhost-user device
=================

These are simple stub devices that ensure the VirtIO device is visible
to the guest. The code is mostly boilerplate although each device has
a ``chardev`` option which specifies the ID of the ``--chardev``
device that connects via a socket to the vhost-user *daemon*.

Each device will have an virtio-mmio and virtio-pci variant. See your
platform details for what sort of virtio bus to use.

.. list-table:: vhost-user devices
  :widths: 20 20 60
  :header-rows: 1

  * - Device
    - Type
    - Notes
  * - vhost-user-blk
    - Block storage
    - See contrib/vhost-user-blk
  * - vhost-user-fs
    - File based storage driver
    - See https://gitlab.com/virtio-fs/virtiofsd
  * - vhost-user-gpio
    - Proxy gpio pins to host
    - See https://github.com/rust-vmm/vhost-device
  * - vhost-user-gpu
    - GPU driver
    - See contrib/vhost-user-gpu
  * - vhost-user-i2c
    - Proxy i2c devices to host
    - See https://github.com/rust-vmm/vhost-device
  * - vhost-user-input
    - Generic input driver
    - :ref:`vhost_user_input`
  * - vhost-user-rng
    - Entropy driver
    - :ref:`vhost_user_rng`
  * - vhost-user-scmi
    - System Control and Management Interface
    - See https://github.com/rust-vmm/vhost-device
  * - vhost-user-snd
    - Audio device
    - See https://github.com/rust-vmm/vhost-device/staging
  * - vhost-user-scsi
    - SCSI based storage
    - See contrib/vhost-user-scsi
  * - vhost-user-vsock
    - Socket based communication
    - See https://github.com/rust-vmm/vhost-device

The referenced *daemons* are not exhaustive, any conforming backend
implementing the device and using the vhost-user protocol should work.

vhost-user-device
^^^^^^^^^^^^^^^^^

The vhost-user-device is a generic development device intended for
expert use while developing new backends. The user needs to specify
all the required parameters including:

  - Device ``virtio-id``
  - The ``num_vqs`` it needs and their ``vq_size``
  - The ``config_size`` if needed

.. note::
  To prevent user confusion you cannot currently instantiate
  vhost-user-device without first patching out::

    /* Reason: stop inexperienced users confusing themselves */
    dc->user_creatable = false;

  in ``vhost-user-device.c`` and ``vhost-user-device-pci.c`` file and
  rebuilding.

vhost-user daemon
=================

This is a separate process that is connected to by QEMU via a socket
following the :ref:`vhost_user_proto`. There are a number of daemons
that can be built when enabled by the project although any daemon that
meets the specification for a given device can be used.

.. _shared_memory_object:

Shared memory object
====================

In order for the daemon to access the VirtIO queues to process the
requests it needs access to the guest's address space. This is
achieved via the ``memory-backend-file`` or ``memory-backend-memfd``
objects. A reference to a file-descriptor which can access this object
will be passed via the socket as part of the protocol negotiation.

Currently the shared memory object needs to match the size of the main
system memory as defined by the ``-m`` argument.

Example
=======

First start your daemon.

.. parsed-literal::

  $ virtio-foo --socket-path=/var/run/foo.sock $OTHER_ARGS

Then you start your QEMU instance specifying the device, chardev and
memory objects.

.. parsed-literal::

  $ |qemu_system| \\
      -m 4096 \\
      -chardev socket,id=ba1,path=/var/run/foo.sock \\
      -device vhost-user-foo,chardev=ba1,$OTHER_ARGS \\
      -object memory-backend-memfd,id=mem,size=4G,share=on \\
      -numa node,memdev=mem \\
        ...

