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