Message ID | 20221205084943.2259-6-longpeng2@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | add generic vDPA device support | expand |
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 >
在 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 >> > > .
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
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 --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 \ + ...