diff mbox series

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

Message ID 20221215134944.2809-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. 15, 2022, 1:49 p.m. UTC
From: Longpeng <longpeng2@huawei.com>

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

Comments

Jason Wang Dec. 16, 2022, 3:33 a.m. UTC | #1
On Thu, Dec 15, 2022 at 9:50 PM Longpeng(Mike) <longpeng2@huawei.com> wrote:
>
> From: Longpeng <longpeng2@huawei.com>
>
> Signed-off-by: Longpeng <longpeng2@huawei.com>
> ---
>  .../devices/vhost-vdpa-generic-device.rst     | 68 +++++++++++++++++++
>  1 file changed, 68 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..24c825ef1a
> --- /dev/null
> +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
> @@ -0,0 +1,68 @@
> +
> +=========================
> +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.
> +
> +
> +Requirements
> +------------
> +Linux 5.18+
> +iproute2/vdpa 5.12.0+
> +
> +
> +Examples
> +--------
> +
> +1. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
> +   device:
> +
> +::
> +  host# modprobe vhost_vdpa
> +  host# modprobe vdpa_sim_blk

Nit: it's probably better to add driver binding steps here.

> +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
> +  (...you can see the vhost-vDPA device under /dev directory now...)

And then the vhost char dev name could be fetch via

ls /sys/bus/vdpa/device/blk0/vhost-vdpa*

With the above changes.

Acked-by: Jason Wang <jasowang@redhat.com>

Thanks

> +  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 loading the vendor-specific vDPA driver and
> +binding the device to the driver.
> +
> +
> +2. 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
>
Michael S. Tsirkin Dec. 19, 2022, 9:37 p.m. UTC | #2
On Fri, Dec 16, 2022 at 11:33:49AM +0800, Jason Wang wrote:
> On Thu, Dec 15, 2022 at 9:50 PM Longpeng(Mike) <longpeng2@huawei.com> wrote:
> >
> > From: Longpeng <longpeng2@huawei.com>
> >
> > Signed-off-by: Longpeng <longpeng2@huawei.com>
> > ---
> >  .../devices/vhost-vdpa-generic-device.rst     | 68 +++++++++++++++++++
> >  1 file changed, 68 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..24c825ef1a
> > --- /dev/null
> > +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
> > @@ -0,0 +1,68 @@
> > +
> > +=========================
> > +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.
> > +
> > +
> > +Requirements
> > +------------
> > +Linux 5.18+
> > +iproute2/vdpa 5.12.0+
> > +
> > +
> > +Examples
> > +--------
> > +
> > +1. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
> > +   device:
> > +
> > +::
> > +  host# modprobe vhost_vdpa
> > +  host# modprobe vdpa_sim_blk
> 
> Nit: it's probably better to add driver binding steps here.
> 
> > +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
> > +  (...you can see the vhost-vDPA device under /dev directory now...)
> 
> And then the vhost char dev name could be fetch via
> 
> ls /sys/bus/vdpa/device/blk0/vhost-vdpa*
> 
> With the above changes.
> 
> Acked-by: Jason Wang <jasowang@redhat.com>
> 
> Thanks


Sounds minor enough, I'll queue, pls fix with a patch on top.

> > +  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 loading the vendor-specific vDPA driver and
> > +binding the device to the driver.
> > +
> > +
> > +2. 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. 20, 2022, 12:02 a.m. UTC | #3
在 2022/12/20 5:37, Michael S. Tsirkin 写道:
> On Fri, Dec 16, 2022 at 11:33:49AM +0800, Jason Wang wrote:
>> On Thu, Dec 15, 2022 at 9:50 PM Longpeng(Mike) <longpeng2@huawei.com> wrote:
>>>
>>> From: Longpeng <longpeng2@huawei.com>
>>>
>>> Signed-off-by: Longpeng <longpeng2@huawei.com>
>>> ---
>>>   .../devices/vhost-vdpa-generic-device.rst     | 68 +++++++++++++++++++
>>>   1 file changed, 68 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..24c825ef1a
>>> --- /dev/null
>>> +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
>>> @@ -0,0 +1,68 @@
>>> +
>>> +=========================
>>> +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.
>>> +
>>> +
>>> +Requirements
>>> +------------
>>> +Linux 5.18+
>>> +iproute2/vdpa 5.12.0+
>>> +
>>> +
>>> +Examples
>>> +--------
>>> +
>>> +1. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
>>> +   device:
>>> +
>>> +::
>>> +  host# modprobe vhost_vdpa
>>> +  host# modprobe vdpa_sim_blk
>>
>> Nit: it's probably better to add driver binding steps here.
>>
>>> +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
>>> +  (...you can see the vhost-vDPA device under /dev directory now...)
>>
>> And then the vhost char dev name could be fetch via
>>
>> ls /sys/bus/vdpa/device/blk0/vhost-vdpa*
>>
>> With the above changes.
>>
>> Acked-by: Jason Wang <jasowang@redhat.com>
>>
>> Thanks
> 
> 
> Sounds minor enough, I'll queue, pls fix with a patch on top.
> 
OK, thanks. I'll send when I'm free.

>>> +  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 loading the vendor-specific vDPA driver and
>>> +binding the device to the driver.
>>> +
>>> +
>>> +2. 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
>>>
> 
> .
Michael S. Tsirkin Dec. 20, 2022, 6:15 a.m. UTC | #4
On Tue, Dec 20, 2022 at 08:02:51AM +0800, Longpeng (Mike, Cloud Infrastructure Service Product Dept.) wrote:
> 
> 
> 在 2022/12/20 5:37, Michael S. Tsirkin 写道:
> > On Fri, Dec 16, 2022 at 11:33:49AM +0800, Jason Wang wrote:
> > > On Thu, Dec 15, 2022 at 9:50 PM Longpeng(Mike) <longpeng2@huawei.com> wrote:
> > > > 
> > > > From: Longpeng <longpeng2@huawei.com>
> > > > 
> > > > Signed-off-by: Longpeng <longpeng2@huawei.com>
> > > > ---
> > > >   .../devices/vhost-vdpa-generic-device.rst     | 68 +++++++++++++++++++
> > > >   1 file changed, 68 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..24c825ef1a
> > > > --- /dev/null
> > > > +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
> > > > @@ -0,0 +1,68 @@
> > > > +
> > > > +=========================
> > > > +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.
> > > > +
> > > > +
> > > > +Requirements
> > > > +------------
> > > > +Linux 5.18+
> > > > +iproute2/vdpa 5.12.0+
> > > > +
> > > > +
> > > > +Examples
> > > > +--------
> > > > +
> > > > +1. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
> > > > +   device:
> > > > +
> > > > +::
> > > > +  host# modprobe vhost_vdpa
> > > > +  host# modprobe vdpa_sim_blk
> > > 
> > > Nit: it's probably better to add driver binding steps here.
> > > 
> > > > +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
> > > > +  (...you can see the vhost-vDPA device under /dev directory now...)
> > > 
> > > And then the vhost char dev name could be fetch via
> > > 
> > > ls /sys/bus/vdpa/device/blk0/vhost-vdpa*
> > > 
> > > With the above changes.
> > > 
> > > Acked-by: Jason Wang <jasowang@redhat.com>
> > > 
> > > Thanks
> > 
> > 
> > Sounds minor enough, I'll queue, pls fix with a patch on top.
> > 
> OK, thanks. I'll send when I'm free.

Is this going to be in the next couple of weeks? then ok.
We do want this addressed by let's say rc3.

> > > > +  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 loading the vendor-specific vDPA driver and
> > > > +binding the device to the driver.
> > > > +
> > > > +
> > > > +2. 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. 20, 2022, 6:20 a.m. UTC | #5
在 2022/12/20 14:15, Michael S. Tsirkin 写道:
> On Tue, Dec 20, 2022 at 08:02:51AM +0800, Longpeng (Mike, Cloud Infrastructure Service Product Dept.) wrote:
>>
>>
>> 在 2022/12/20 5:37, Michael S. Tsirkin 写道:
>>> On Fri, Dec 16, 2022 at 11:33:49AM +0800, Jason Wang wrote:
>>>> On Thu, Dec 15, 2022 at 9:50 PM Longpeng(Mike) <longpeng2@huawei.com> wrote:
>>>>>
>>>>> From: Longpeng <longpeng2@huawei.com>
>>>>>
>>>>> Signed-off-by: Longpeng <longpeng2@huawei.com>
>>>>> ---
>>>>>    .../devices/vhost-vdpa-generic-device.rst     | 68 +++++++++++++++++++
>>>>>    1 file changed, 68 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..24c825ef1a
>>>>> --- /dev/null
>>>>> +++ b/docs/system/devices/vhost-vdpa-generic-device.rst
>>>>> @@ -0,0 +1,68 @@
>>>>> +
>>>>> +=========================
>>>>> +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.
>>>>> +
>>>>> +
>>>>> +Requirements
>>>>> +------------
>>>>> +Linux 5.18+
>>>>> +iproute2/vdpa 5.12.0+
>>>>> +
>>>>> +
>>>>> +Examples
>>>>> +--------
>>>>> +
>>>>> +1. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
>>>>> +   device:
>>>>> +
>>>>> +::
>>>>> +  host# modprobe vhost_vdpa
>>>>> +  host# modprobe vdpa_sim_blk
>>>>
>>>> Nit: it's probably better to add driver binding steps here.
>>>>
>>>>> +  host# vdpa dev add mgmtdev vdpasim_blk name blk0
>>>>> +  (...you can see the vhost-vDPA device under /dev directory now...)
>>>>
>>>> And then the vhost char dev name could be fetch via
>>>>
>>>> ls /sys/bus/vdpa/device/blk0/vhost-vdpa*
>>>>
>>>> With the above changes.
>>>>
>>>> Acked-by: Jason Wang <jasowang@redhat.com>
>>>>
>>>> Thanks
>>>
>>>
>>> Sounds minor enough, I'll queue, pls fix with a patch on top.
>>>
>> OK, thanks. I'll send when I'm free.
> 
> Is this going to be in the next couple of weeks? then ok.

I think I can send out during this weekend.

> We do want this addressed by let's say rc3.
> 
>>>>> +  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 loading the vendor-specific vDPA driver and
>>>>> +binding the device to the driver.
>>>>> +
>>>>> +
>>>>> +2. 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..24c825ef1a
--- /dev/null
+++ b/docs/system/devices/vhost-vdpa-generic-device.rst
@@ -0,0 +1,68 @@ 
+
+=========================
+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.
+
+
+Requirements
+------------
+Linux 5.18+
+iproute2/vdpa 5.12.0+
+
+
+Examples
+--------
+
+1. Prepare the vhost-vDPA backends, here is an example using vdpa_sim_blk
+   device:
+
+::
+  host# modprobe vhost_vdpa
+  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 loading the vendor-specific vDPA driver and
+binding the device to the driver.
+
+
+2. 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       \
+      ...