diff mbox series

[v10,5/5] docs: Add generic vhost-vdpa device documentation

Message ID 20221205084943.2259-6-longpeng2@huawei.com (mailing list archive)
State New, archived
Headers show
Series add generic vDPA device support | expand

Commit Message

Denis V. Lunev" via Dec. 5, 2022, 8:49 a.m. UTC
From: Longpeng <longpeng2@huawei.com>

Signed-off-by: Longpeng <longpeng2@huawei.com>
---
 .../devices/vhost-vdpa-generic-device.rst     | 66 +++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst

Comments

Stefano Garzarella Dec. 13, 2022, 2:35 p.m. UTC | #1
On Mon, Dec 05, 2022 at 04:49:43PM +0800, Longpeng(Mike) wrote:
>From: Longpeng <longpeng2@huawei.com>
>
>Signed-off-by: Longpeng <longpeng2@huawei.com>
>---
> .../devices/vhost-vdpa-generic-device.rst     | 66 +++++++++++++++++++
> 1 file changed, 66 insertions(+)
> create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst
>
>diff --git a/docs/system/devices/vhost-vdpa-generic-device.rst b/docs/system/devices/vhost-vdpa-generic-device.rst
>new file mode 100644
>index 0000000000..7d13359ea1
>--- /dev/null
>+++ b/docs/system/devices/vhost-vdpa-generic-device.rst
>@@ -0,0 +1,66 @@
>+
>+=========================
>+vhost-vDPA generic device
>+=========================
>+
>+This document explains the usage of the vhost-vDPA generic device.
>+
>+Description
>+-----------
>+
>+vDPA(virtio data path acceleration) device is a device that uses a datapath
>+which complies with the virtio specifications with vendor specific control
>+path.
>+
>+QEMU provides two types of vhost-vDPA devices to enable the vDPA device, one
>+is type sensitive which means QEMU needs to know the actual device type
>+(e.g. net, blk, scsi) and another is called "vhost-vDPA generic device" which
>+is type insensitive.
>+
>+The vhost-vDPA generic device builds on the vhost-vdpa subsystem and virtio
>+subsystem. It is quite small, but it can support any type of virtio device.
>+

Maybe we can also add a minimum requirement section (e.g. we needs at 
least Linux v5.18 for VHOST_VDPA_GET_VQS_COUNT)

>+Examples
>+--------
>+
>+1. Please make sure the modules listed bellow are installed:
>+    vhost.ko
>+    vhost_iotlb.ko
>+    vdpa.ko
>+    vhost_vdpa.ko
>+
>+
>+2. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
>+   device:
>+
>+::

Should we add also a `modprobe vhost-vdpa` step?

>+  host# modprobe vdpa_sim_blk
>+  host# vdpa dev add mgmtdev vdpasim_blk name blk0
>+  (...you can see the vhost-vDPA device under /dev directory now...)
>+  host# ls -l /dev/vhost-vdpa-*
>+  crw------- 1 root root 236, 0 Nov  2 00:49 /dev/vhost-vdpa-0
>+
>+Note:
>+It needs some vendor-specific steps to provision the vDPA device if you're
>+using real HW devices, such as installing the vendor-specific vDPA driver
>+and binding the device to the driver.
>+
>+
>+3. Start the virtual machine:
>+
>+Start QEMU with virtio-mmio bus:
>+
>+::
>+  host# qemu-system                                                  \
>+      -M microvm -m 512 -smp 2 -kernel ... -initrd ...               \
>+      -device vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-0           \
>+      ...
>+
>+
>+Start QEMU with virtio-pci bus:
>+
>+::
>+  host# qemu-system                                                  \
>+      -M pc -m 512 -smp 2                                            \
>+      -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-0       \
>+      ...
>-- 
>2.23.0
>
Denis V. Lunev" via Dec. 13, 2022, 3:37 p.m. UTC | #2
在 2022/12/13 22:35, Stefano Garzarella 写道:
> On Mon, Dec 05, 2022 at 04:49:43PM +0800, Longpeng(Mike) wrote:
>> From: Longpeng <longpeng2@huawei.com>
>>
>> Signed-off-by: Longpeng <longpeng2@huawei.com>
>> ---
>> .../devices/vhost-vdpa-generic-device.rst     | 66 +++++++++++++++++++
>> 1 file changed, 66 insertions(+)
>> create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst
>>
>> diff --git a/docs/system/devices/vhost-vdpa-generic-device.rst 
>> b/docs/system/devices/vhost-vdpa-generic-device.rst
>> new file mode 100644
>> index 0000000000..7d13359ea1
>> --- /dev/null
>> +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
>> @@ -0,0 +1,66 @@
>> +
>> +=========================
>> +vhost-vDPA generic device
>> +=========================
>> +
>> +This document explains the usage of the vhost-vDPA generic device.
>> +
>> +Description
>> +-----------
>> +
>> +vDPA(virtio data path acceleration) device is a device that uses a 
>> datapath
>> +which complies with the virtio specifications with vendor specific 
>> control
>> +path.
>> +
>> +QEMU provides two types of vhost-vDPA devices to enable the vDPA 
>> device, one
>> +is type sensitive which means QEMU needs to know the actual device type
>> +(e.g. net, blk, scsi) and another is called "vhost-vDPA generic 
>> device" which
>> +is type insensitive.
>> +
>> +The vhost-vDPA generic device builds on the vhost-vdpa subsystem and 
>> virtio
>> +subsystem. It is quite small, but it can support any type of virtio 
>> device.
>> +
> 
> Maybe we can also add a minimum requirement section (e.g. we needs at 
> least Linux v5.18 for VHOST_VDPA_GET_VQS_COUNT)
> 
Ok.

>> +Examples
>> +--------
>> +
>> +1. Please make sure the modules listed bellow are installed:
>> +    vhost.ko
>> +    vhost_iotlb.ko
>> +    vdpa.ko
>> +    vhost_vdpa.ko
>> +
>> +
>> +2. Prepare the vhost-vDPA backends, here is an example using 
>> vdpa_sim_blk
>> +   device:
>> +
>> +::
> 
> Should we add also a `modprobe vhost-vdpa` step?
> 
This is already described in Step 1.

>> +  host# modprobe vdpa_sim_blk
>> +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
>> +  (...you can see the vhost-vDPA device under /dev directory now...)
>> +  host# ls -l /dev/vhost-vdpa-*
>> +  crw------- 1 root root 236, 0 Nov  2 00:49 /dev/vhost-vdpa-0
>> +
>> +Note:
>> +It needs some vendor-specific steps to provision the vDPA device if 
>> you're
>> +using real HW devices, such as installing the vendor-specific vDPA 
>> driver
>> +and binding the device to the driver.
>> +
>> +
>> +3. Start the virtual machine:
>> +
>> +Start QEMU with virtio-mmio bus:
>> +
>> +::
>> +  host# qemu-system                                                  \
>> +      -M microvm -m 512 -smp 2 -kernel ... -initrd ...               \
>> +      -device vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-0           \
>> +      ...
>> +
>> +
>> +Start QEMU with virtio-pci bus:
>> +
>> +::
>> +  host# qemu-system                                                  \
>> +      -M pc -m 512 -smp 2                                            \
>> +      -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-0       \
>> +      ...
>> -- 
>> 2.23.0
>>
> 
> .
Stefano Garzarella Dec. 13, 2022, 3:49 p.m. UTC | #3
On Tue, Dec 13, 2022 at 11:37:35PM +0800, Longpeng (Mike, Cloud Infrastructure Service Product Dept.) wrote:
>
>
>在 2022/12/13 22:35, Stefano Garzarella 写道:
>>On Mon, Dec 05, 2022 at 04:49:43PM +0800, Longpeng(Mike) wrote:
>>>From: Longpeng <longpeng2@huawei.com>
>>>
>>>Signed-off-by: Longpeng <longpeng2@huawei.com>
>>>---
>>>.../devices/vhost-vdpa-generic-device.rst     | 66 +++++++++++++++++++
>>>1 file changed, 66 insertions(+)
>>>create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst
>>>
>>>diff --git a/docs/system/devices/vhost-vdpa-generic-device.rst 
>>>b/docs/system/devices/vhost-vdpa-generic-device.rst
>>>new file mode 100644
>>>index 0000000000..7d13359ea1
>>>--- /dev/null
>>>+++ b/docs/system/devices/vhost-vdpa-generic-device.rst
>>>@@ -0,0 +1,66 @@
>>>+
>>>+=========================
>>>+vhost-vDPA generic device
>>>+=========================
>>>+
>>>+This document explains the usage of the vhost-vDPA generic device.
>>>+
>>>+Description
>>>+-----------
>>>+
>>>+vDPA(virtio data path acceleration) device is a device that uses 
>>>a datapath
>>>+which complies with the virtio specifications with vendor 
>>>specific control
>>>+path.
>>>+
>>>+QEMU provides two types of vhost-vDPA devices to enable the vDPA 
>>>device, one
>>>+is type sensitive which means QEMU needs to know the actual device type
>>>+(e.g. net, blk, scsi) and another is called "vhost-vDPA generic 
>>>device" which
>>>+is type insensitive.
>>>+
>>>+The vhost-vDPA generic device builds on the vhost-vdpa subsystem 
>>>and virtio
>>>+subsystem. It is quite small, but it can support any type of 
>>>virtio device.
>>>+
>>
>>Maybe we can also add a minimum requirement section (e.g. we needs 
>>at least Linux v5.18 for VHOST_VDPA_GET_VQS_COUNT)
>>
>Ok.
>
>>>+Examples
>>>+--------
>>>+
>>>+1. Please make sure the modules listed bellow are installed:
>>>+    vhost.ko
>>>+    vhost_iotlb.ko
>>>+    vdpa.ko
>>>+    vhost_vdpa.ko
>>>+
>>>+
>>>+2. Prepare the vhost-vDPA backends, here is an example using 
>>>vdpa_sim_blk
>>>+   device:
>>>+
>>>+::
>>
>>Should we add also a `modprobe vhost-vdpa` step?
>>
>This is already described in Step 1.

Ah sorry, I had interpreted it as having those modules compiled and 
available, not loaded.
Maybe better to replace "installed", with "loaded".

Although IMHO we can remove "Step 1" and add "modprobe vhost-vdpa" here.
The others are all dependencies that are automatically loaded.

Thanks,
Stefano
Michael S. Tsirkin Dec. 20, 2022, 3:27 p.m. UTC | #4
On Mon, Dec 05, 2022 at 04:49:43PM +0800, Longpeng(Mike) wrote:
> From: Longpeng <longpeng2@huawei.com>
> 
> Signed-off-by: Longpeng <longpeng2@huawei.com>

Dropped 5/5 for now due to comments and build errors.

> ---
>  .../devices/vhost-vdpa-generic-device.rst     | 66 +++++++++++++++++++
>  1 file changed, 66 insertions(+)
>  create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst
> 
> diff --git a/docs/system/devices/vhost-vdpa-generic-device.rst b/docs/system/devices/vhost-vdpa-generic-device.rst
> new file mode 100644
> index 0000000000..7d13359ea1
> --- /dev/null
> +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
> @@ -0,0 +1,66 @@
> +
> +=========================
> +vhost-vDPA generic device
> +=========================
> +
> +This document explains the usage of the vhost-vDPA generic device.
> +
> +Description
> +-----------
> +
> +vDPA(virtio data path acceleration) device is a device that uses a datapath
> +which complies with the virtio specifications with vendor specific control
> +path.
> +
> +QEMU provides two types of vhost-vDPA devices to enable the vDPA device, one
> +is type sensitive which means QEMU needs to know the actual device type
> +(e.g. net, blk, scsi) and another is called "vhost-vDPA generic device" which
> +is type insensitive.
> +
> +The vhost-vDPA generic device builds on the vhost-vdpa subsystem and virtio
> +subsystem. It is quite small, but it can support any type of virtio device.
> +
> +Examples
> +--------
> +
> +1. Please make sure the modules listed bellow are installed:
> +    vhost.ko
> +    vhost_iotlb.ko
> +    vdpa.ko
> +    vhost_vdpa.ko
> +
> +
> +2. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
> +   device:
> +
> +::
> +  host# modprobe vdpa_sim_blk
> +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
> +  (...you can see the vhost-vDPA device under /dev directory now...)
> +  host# ls -l /dev/vhost-vdpa-*
> +  crw------- 1 root root 236, 0 Nov  2 00:49 /dev/vhost-vdpa-0
> +
> +Note:
> +It needs some vendor-specific steps to provision the vDPA device if you're
> +using real HW devices, such as installing the vendor-specific vDPA driver
> +and binding the device to the driver.
> +
> +
> +3. Start the virtual machine:
> +
> +Start QEMU with virtio-mmio bus:
> +
> +::
> +  host# qemu-system                                                  \
> +      -M microvm -m 512 -smp 2 -kernel ... -initrd ...               \
> +      -device vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-0           \
> +      ...
> +
> +
> +Start QEMU with virtio-pci bus:
> +
> +::
> +  host# qemu-system                                                  \
> +      -M pc -m 512 -smp 2                                            \
> +      -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-0       \
> +      ...
> -- 
> 2.23.0
diff mbox series

Patch

diff --git a/docs/system/devices/vhost-vdpa-generic-device.rst b/docs/system/devices/vhost-vdpa-generic-device.rst
new file mode 100644
index 0000000000..7d13359ea1
--- /dev/null
+++ b/docs/system/devices/vhost-vdpa-generic-device.rst
@@ -0,0 +1,66 @@ 
+
+=========================
+vhost-vDPA generic device
+=========================
+
+This document explains the usage of the vhost-vDPA generic device.
+
+Description
+-----------
+
+vDPA(virtio data path acceleration) device is a device that uses a datapath
+which complies with the virtio specifications with vendor specific control
+path.
+
+QEMU provides two types of vhost-vDPA devices to enable the vDPA device, one
+is type sensitive which means QEMU needs to know the actual device type
+(e.g. net, blk, scsi) and another is called "vhost-vDPA generic device" which
+is type insensitive.
+
+The vhost-vDPA generic device builds on the vhost-vdpa subsystem and virtio
+subsystem. It is quite small, but it can support any type of virtio device.
+
+Examples
+--------
+
+1. Please make sure the modules listed bellow are installed:
+    vhost.ko
+    vhost_iotlb.ko
+    vdpa.ko
+    vhost_vdpa.ko
+
+
+2. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
+   device:
+
+::
+  host# modprobe vdpa_sim_blk
+  host# vdpa dev add mgmtdev vdpasim_blk name blk0
+  (...you can see the vhost-vDPA device under /dev directory now...)
+  host# ls -l /dev/vhost-vdpa-*
+  crw------- 1 root root 236, 0 Nov  2 00:49 /dev/vhost-vdpa-0
+
+Note:
+It needs some vendor-specific steps to provision the vDPA device if you're
+using real HW devices, such as installing the vendor-specific vDPA driver
+and binding the device to the driver.
+
+
+3. Start the virtual machine:
+
+Start QEMU with virtio-mmio bus:
+
+::
+  host# qemu-system                                                  \
+      -M microvm -m 512 -smp 2 -kernel ... -initrd ...               \
+      -device vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-0           \
+      ...
+
+
+Start QEMU with virtio-pci bus:
+
+::
+  host# qemu-system                                                  \
+      -M pc -m 512 -smp 2                                            \
+      -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-0       \
+      ...