[PATCH] Documentation: add basic information on vDPA

From: Stefan Hajnoczi
Date: Wed Aug 17 2022 - 18:20:10 EST


The vDPA driver framework is largely undocumented. Add a basic page that
describes what vDPA is, where to get more information, and how to use
the simulator for testing.

In the future it would be nice to add an overview of the driver API as
well as comprehensive doc comments.

Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx>
Cc: Jason Wang <jasowang@xxxxxxxxxx>
Cc: Stefano Garzarella <sgarzare@xxxxxxxxxx>
Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
---
Documentation/driver-api/index.rst | 1 +
Documentation/driver-api/vdpa.rst | 40 ++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
create mode 100644 Documentation/driver-api/vdpa.rst

diff --git a/Documentation/driver-api/index.rst b/Documentation/driver-api/index.rst
index d3a58f77328e..e307779568d4 100644
--- a/Documentation/driver-api/index.rst
+++ b/Documentation/driver-api/index.rst
@@ -103,6 +103,7 @@ available subsections can be seen below.
switchtec
sync_file
tty/index
+ vdpa
vfio-mediated-device
vfio
vfio-pci-device-specific-driver-acceptance
diff --git a/Documentation/driver-api/vdpa.rst b/Documentation/driver-api/vdpa.rst
new file mode 100644
index 000000000000..75c666548e1d
--- /dev/null
+++ b/Documentation/driver-api/vdpa.rst
@@ -0,0 +1,40 @@
+====================================
+vDPA - VIRTIO Data Path Acceleration
+====================================
+
+The vDPA driver framework can be used to implement VIRTIO devices that are
+backed by physical hardware or by software. While the device's data path
+complies with the VIRTIO specification, the control path is driver-specific and
+a netlink interface exists for instantiating devices.
+
+vDPA devices can be attached to the kernel's VIRTIO device drivers or exposed
+to userspace emulators/virtualizers such as QEMU through vhost.
+
+The driver API is not documented beyond the doc comments in <linux/vdpa.h>. The
+netlink API is not documented beyond the doc comments in <linux/uapi/vdpa.h>.
+The existing vDPA drivers serve as reference code for those wishing to develop
+their own drivers.
+
+See https://vdpa-dev.gitlab.io/ for more information about vDPA.
+
+Questions can be sent to the virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx mailing
+list.
+
+Device simulators
+-----------------
+
+There are software vDPA device simulators for testing, prototyping, and
+development purposes. The simulators do not require physical hardware.
+
+Available simulators include:
+
+- `vdpa_sim_net` implements a virtio-net loopback device.
+- `vdpa_sim_blk` implements a memory-backed virtio-blk device.
+
+To use `vdpa_sim_blk` through vhost::
+
+ # modprobe vhost_vdpa
+ # modprobe vdpa_sim_blk
+ # vdpa dev add name vdpa-blk1 mgmtdev vdpasim_blk
+ ...use /dev/vhost-dev-0...
+ # vdpa dev del vdpa-blk1
--
2.37.2