docs: Add documentation for vhost based RNG implementation

Add description and example for the vhost-user based RNG implementation.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Message-Id: <20211012205904.4106769-4-mathieu.poirier@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Mathieu Poirier 2021-10-12 14:59:04 -06:00 committed by Michael S. Tsirkin
parent c7160fff7d
commit c47d4fa0c8
2 changed files with 40 additions and 0 deletions

View File

@ -88,3 +88,4 @@ Emulated Devices
devices/usb.rst
devices/vhost-user.rst
devices/virtio-pmem.rst
devices/vhost-user-rng.rst

View File

@ -0,0 +1,39 @@
QEMU vhost-user-rng - RNG emulation
===================================
Background
----------
What follows builds on the material presented in vhost-user.rst - it should
be reviewed before moving forward with the content in this file.
Description
-----------
The vhost-user-rng device implementation was designed to work with a random
number generator daemon such as the one found in the vhost-device crate of
the rust-vmm project available on github [1].
[1]. https://github.com/rust-vmm/vhost-device
Examples
--------
The daemon should be started first:
::
host# vhost-device-rng --socket-path=rng.sock -c 1 -m 512 -p 1000
The QEMU invocation needs to create a chardev socket the device can
use to communicate as well as share the guests memory over a memfd.
::
host# qemu-system \
-chardev socket,path=$(PATH)/rng.sock,id=rng0 \
-device vhost-user-rng-pci,chardev=rng0 \
-m 4096 \
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \
-numa node,memdev=mem \
...