hw/virtio/Kconfig | 5 + hw/virtio/meson.build | 2 + hw/virtio/vdpa-dev-pci.c | 102 ++++++++++ hw/virtio/vdpa-dev.c | 377 +++++++++++++++++++++++++++++++++++ hw/virtio/virtio-pci.c | 88 ++++++++ hw/virtio/virtio-pci.h | 5 + include/hw/virtio/vdpa-dev.h | 43 ++++ linux-headers/linux/vhost.h | 7 + 8 files changed, 629 insertions(+) create mode 100644 hw/virtio/vdpa-dev-pci.c create mode 100644 hw/virtio/vdpa-dev.c create mode 100644 include/hw/virtio/vdpa-dev.h
From: Longpeng <longpeng2@huawei.com>
Hi guys,
With the generic vDPA device, QEMU won't need to touch the device
types any more, such like vfio.
We can use the generic vDPA device as follow:
-device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-X
Or
-M microvm -m 512m -smp 2 -kernel ... -initrd ... -device \
vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-x
I've done some simple tests on Huawei's offloading card (net, 0.95).
Changes v5 -> v6:
Patch 2:
- Turn to the original approach in the RFC to initialize the
virtio_pci_id_info array. [Michael]
https://lore.kernel.org/all/20220105005900.860-2-longpeng2@huawei.com/
Patch 3:
- Fix logical error of exception handler around the post_init.
[Stefano]
- Fix some coding style warnings. [Stefano]
Patch 4:
- Fix some coding style warnings. [Stefano]
Changes v4 -> v5:
Patch 3:
- remove vhostfd [Jason]
- support virtio-mmio [Jason]
Changes v3 -> v4:
v3: https://www.mail-archive.com/qemu-devel@nongnu.org/msg877015.html
- reorganize the series [Stefano]
- fix some typos [Stefano]
- fix logical error in vhost_vdpa_device_realize [Stefano]
Changes v2 -> v3
Patch 4 & 5:
- only call vdpa ioctls in vdpa-dev.c [Stefano, Longpeng]
- s/VQS_NUM/VQS_COUNT [Stefano]
- check both vdpa_dev_fd and vdpa_dev [Stefano]
Patch 6:
- move all steps into vhost_vdpa_device_unrealize. [Stefano]
Changes RFC -> v2
Patch 1:
- rename 'pdev_id' to 'trans_devid' [Michael]
- only use transitional device id for the devices
listed in the spec [Michael]
- use macros to make the id_info table clearer [Longpeng]
- add some modern devices in the id_info table [Longpeng]
Patch 2:
- remove the GET_VECTORS_NUM command [Jason]
Patch 4:
- expose vdpa_dev_fd as a QOM preperty [Stefan]
- introduce vhost_vdpa_device_get_u32 as a common
function to make the code clearer [Stefan]
- fix the misleading description of 'dc->desc' [Stefano]
Patch 5:
- check returned number of virtqueues [Stefan]
Patch 6:
- init s->num_queues [Stefano]
- free s->dev.vqs [Stefano]
Longpeng (Mike) (4):
linux-headers: Update headers to Linux 5.18-rc6
virtio: get class_id and pci device id by the virtio id
vdpa: add vdpa-dev support
vdpa: add vdpa-dev-pci support
hw/virtio/Kconfig | 5 +
hw/virtio/meson.build | 2 +
hw/virtio/vdpa-dev-pci.c | 102 ++++++++++
hw/virtio/vdpa-dev.c | 377 +++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 88 ++++++++
hw/virtio/virtio-pci.h | 5 +
include/hw/virtio/vdpa-dev.h | 43 ++++
linux-headers/linux/vhost.h | 7 +
8 files changed, 629 insertions(+)
create mode 100644 hw/virtio/vdpa-dev-pci.c
create mode 100644 hw/virtio/vdpa-dev.c
create mode 100644 include/hw/virtio/vdpa-dev.h
--
2.23.0
On Sat, May 14, 2022 at 12:11:03PM +0800, Longpeng(Mike) wrote: > From: Longpeng <longpeng2@huawei.com> > > Hi guys, > > With the generic vDPA device, QEMU won't need to touch the device > types any more, such like vfio. > > We can use the generic vDPA device as follow: > -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-X > Or > -M microvm -m 512m -smp 2 -kernel ... -initrd ... -device \ > vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-x > > I've done some simple tests on Huawei's offloading card (net, 0.95). Please send a follow-up patch that adds documentation for this new device type. Maybe in a new docs/system/devices/vhost-vdpa.rst file? Stefan
Hi guys, Ping...Any other comments? 在 2022/5/14 12:11, Longpeng(Mike) 写道: > From: Longpeng <longpeng2@huawei.com> > > Hi guys, > > With the generic vDPA device, QEMU won't need to touch the device > types any more, such like vfio. > > We can use the generic vDPA device as follow: > -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-X > Or > -M microvm -m 512m -smp 2 -kernel ... -initrd ... -device \ > vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-x > > I've done some simple tests on Huawei's offloading card (net, 0.95). > > Changes v5 -> v6: > Patch 2: > - Turn to the original approach in the RFC to initialize the > virtio_pci_id_info array. [Michael] > https://lore.kernel.org/all/20220105005900.860-2-longpeng2@huawei.com/ > Patch 3: > - Fix logical error of exception handler around the post_init. > [Stefano] > - Fix some coding style warnings. [Stefano] > Patch 4: > - Fix some coding style warnings. [Stefano] > > Changes v4 -> v5: > Patch 3: > - remove vhostfd [Jason] > - support virtio-mmio [Jason] > > Changes v3 -> v4: > v3: https://www.mail-archive.com/qemu-devel@nongnu.org/msg877015.html > - reorganize the series [Stefano] > - fix some typos [Stefano] > - fix logical error in vhost_vdpa_device_realize [Stefano] > > Changes v2 -> v3 > Patch 4 & 5: > - only call vdpa ioctls in vdpa-dev.c [Stefano, Longpeng] > - s/VQS_NUM/VQS_COUNT [Stefano] > - check both vdpa_dev_fd and vdpa_dev [Stefano] > Patch 6: > - move all steps into vhost_vdpa_device_unrealize. [Stefano] > > Changes RFC -> v2 > Patch 1: > - rename 'pdev_id' to 'trans_devid' [Michael] > - only use transitional device id for the devices > listed in the spec [Michael] > - use macros to make the id_info table clearer [Longpeng] > - add some modern devices in the id_info table [Longpeng] > Patch 2: > - remove the GET_VECTORS_NUM command [Jason] > Patch 4: > - expose vdpa_dev_fd as a QOM preperty [Stefan] > - introduce vhost_vdpa_device_get_u32 as a common > function to make the code clearer [Stefan] > - fix the misleading description of 'dc->desc' [Stefano] > Patch 5: > - check returned number of virtqueues [Stefan] > Patch 6: > - init s->num_queues [Stefano] > - free s->dev.vqs [Stefano] > > > Longpeng (Mike) (4): > linux-headers: Update headers to Linux 5.18-rc6 > virtio: get class_id and pci device id by the virtio id > vdpa: add vdpa-dev support > vdpa: add vdpa-dev-pci support > > hw/virtio/Kconfig | 5 + > hw/virtio/meson.build | 2 + > hw/virtio/vdpa-dev-pci.c | 102 ++++++++++ > hw/virtio/vdpa-dev.c | 377 +++++++++++++++++++++++++++++++++++ > hw/virtio/virtio-pci.c | 88 ++++++++ > hw/virtio/virtio-pci.h | 5 + > include/hw/virtio/vdpa-dev.h | 43 ++++ > linux-headers/linux/vhost.h | 7 + > 8 files changed, 629 insertions(+) > create mode 100644 hw/virtio/vdpa-dev-pci.c > create mode 100644 hw/virtio/vdpa-dev.c > create mode 100644 include/hw/virtio/vdpa-dev.h >
On Mon, May 30, 2022 at 12:16 PM Longpeng (Mike, Cloud Infrastructure Service Product Dept.) <longpeng2@huawei.com> wrote: > > Hi guys, > > Ping...Any other comments? Looks good to me. Acked-by: Jason Wang <jasowang@redhat.com> (This probably requires a rebase since it doesn't apply cleanly on master). Thanks > > 在 2022/5/14 12:11, Longpeng(Mike) 写道: > > From: Longpeng <longpeng2@huawei.com> > > > > Hi guys, > > > > With the generic vDPA device, QEMU won't need to touch the device > > types any more, such like vfio. > > > > We can use the generic vDPA device as follow: > > -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-X > > Or > > -M microvm -m 512m -smp 2 -kernel ... -initrd ... -device \ > > vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-x > > > > I've done some simple tests on Huawei's offloading card (net, 0.95). > > > > Changes v5 -> v6: > > Patch 2: > > - Turn to the original approach in the RFC to initialize the > > virtio_pci_id_info array. [Michael] > > https://lore.kernel.org/all/20220105005900.860-2-longpeng2@huawei.com/ > > Patch 3: > > - Fix logical error of exception handler around the post_init. > > [Stefano] > > - Fix some coding style warnings. [Stefano] > > Patch 4: > > - Fix some coding style warnings. [Stefano] > > > > Changes v4 -> v5: > > Patch 3: > > - remove vhostfd [Jason] > > - support virtio-mmio [Jason] > > > > Changes v3 -> v4: > > v3: https://www.mail-archive.com/qemu-devel@nongnu.org/msg877015.html > > - reorganize the series [Stefano] > > - fix some typos [Stefano] > > - fix logical error in vhost_vdpa_device_realize [Stefano] > > > > Changes v2 -> v3 > > Patch 4 & 5: > > - only call vdpa ioctls in vdpa-dev.c [Stefano, Longpeng] > > - s/VQS_NUM/VQS_COUNT [Stefano] > > - check both vdpa_dev_fd and vdpa_dev [Stefano] > > Patch 6: > > - move all steps into vhost_vdpa_device_unrealize. [Stefano] > > > > Changes RFC -> v2 > > Patch 1: > > - rename 'pdev_id' to 'trans_devid' [Michael] > > - only use transitional device id for the devices > > listed in the spec [Michael] > > - use macros to make the id_info table clearer [Longpeng] > > - add some modern devices in the id_info table [Longpeng] > > Patch 2: > > - remove the GET_VECTORS_NUM command [Jason] > > Patch 4: > > - expose vdpa_dev_fd as a QOM preperty [Stefan] > > - introduce vhost_vdpa_device_get_u32 as a common > > function to make the code clearer [Stefan] > > - fix the misleading description of 'dc->desc' [Stefano] > > Patch 5: > > - check returned number of virtqueues [Stefan] > > Patch 6: > > - init s->num_queues [Stefano] > > - free s->dev.vqs [Stefano] > > > > > > Longpeng (Mike) (4): > > linux-headers: Update headers to Linux 5.18-rc6 > > virtio: get class_id and pci device id by the virtio id > > vdpa: add vdpa-dev support > > vdpa: add vdpa-dev-pci support > > > > hw/virtio/Kconfig | 5 + > > hw/virtio/meson.build | 2 + > > hw/virtio/vdpa-dev-pci.c | 102 ++++++++++ > > hw/virtio/vdpa-dev.c | 377 +++++++++++++++++++++++++++++++++++ > > hw/virtio/virtio-pci.c | 88 ++++++++ > > hw/virtio/virtio-pci.h | 5 + > > include/hw/virtio/vdpa-dev.h | 43 ++++ > > linux-headers/linux/vhost.h | 7 + > > 8 files changed, 629 insertions(+) > > create mode 100644 hw/virtio/vdpa-dev-pci.c > > create mode 100644 hw/virtio/vdpa-dev.c > > create mode 100644 include/hw/virtio/vdpa-dev.h > > >
在 2022/5/31 16:50, Jason Wang 写道: > On Mon, May 30, 2022 at 12:16 PM Longpeng (Mike, Cloud Infrastructure > Service Product Dept.) <longpeng2@huawei.com> wrote: >> >> Hi guys, >> >> Ping...Any other comments? > > Looks good to me. > > Acked-by: Jason Wang <jasowang@redhat.com> > > (This probably requires a rebase since it doesn't apply cleanly on master). > Okay, I'll rebase in next version. Thanks. > Thanks > >> >> 在 2022/5/14 12:11, Longpeng(Mike) 写道: >>> From: Longpeng <longpeng2@huawei.com> >>> >>> Hi guys, >>> >>> With the generic vDPA device, QEMU won't need to touch the device >>> types any more, such like vfio. >>> >>> We can use the generic vDPA device as follow: >>> -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-X >>> Or >>> -M microvm -m 512m -smp 2 -kernel ... -initrd ... -device \ >>> vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-x >>> >>> I've done some simple tests on Huawei's offloading card (net, 0.95). >>> >>> Changes v5 -> v6: >>> Patch 2: >>> - Turn to the original approach in the RFC to initialize the >>> virtio_pci_id_info array. [Michael] >>> https://lore.kernel.org/all/20220105005900.860-2-longpeng2@huawei.com/ >>> Patch 3: >>> - Fix logical error of exception handler around the post_init. >>> [Stefano] >>> - Fix some coding style warnings. [Stefano] >>> Patch 4: >>> - Fix some coding style warnings. [Stefano] >>> >>> Changes v4 -> v5: >>> Patch 3: >>> - remove vhostfd [Jason] >>> - support virtio-mmio [Jason] >>> >>> Changes v3 -> v4: >>> v3: https://www.mail-archive.com/qemu-devel@nongnu.org/msg877015.html >>> - reorganize the series [Stefano] >>> - fix some typos [Stefano] >>> - fix logical error in vhost_vdpa_device_realize [Stefano] >>> >>> Changes v2 -> v3 >>> Patch 4 & 5: >>> - only call vdpa ioctls in vdpa-dev.c [Stefano, Longpeng] >>> - s/VQS_NUM/VQS_COUNT [Stefano] >>> - check both vdpa_dev_fd and vdpa_dev [Stefano] >>> Patch 6: >>> - move all steps into vhost_vdpa_device_unrealize. [Stefano] >>> >>> Changes RFC -> v2 >>> Patch 1: >>> - rename 'pdev_id' to 'trans_devid' [Michael] >>> - only use transitional device id for the devices >>> listed in the spec [Michael] >>> - use macros to make the id_info table clearer [Longpeng] >>> - add some modern devices in the id_info table [Longpeng] >>> Patch 2: >>> - remove the GET_VECTORS_NUM command [Jason] >>> Patch 4: >>> - expose vdpa_dev_fd as a QOM preperty [Stefan] >>> - introduce vhost_vdpa_device_get_u32 as a common >>> function to make the code clearer [Stefan] >>> - fix the misleading description of 'dc->desc' [Stefano] >>> Patch 5: >>> - check returned number of virtqueues [Stefan] >>> Patch 6: >>> - init s->num_queues [Stefano] >>> - free s->dev.vqs [Stefano] >>> >>> >>> Longpeng (Mike) (4): >>> linux-headers: Update headers to Linux 5.18-rc6 >>> virtio: get class_id and pci device id by the virtio id >>> vdpa: add vdpa-dev support >>> vdpa: add vdpa-dev-pci support >>> >>> hw/virtio/Kconfig | 5 + >>> hw/virtio/meson.build | 2 + >>> hw/virtio/vdpa-dev-pci.c | 102 ++++++++++ >>> hw/virtio/vdpa-dev.c | 377 +++++++++++++++++++++++++++++++++++ >>> hw/virtio/virtio-pci.c | 88 ++++++++ >>> hw/virtio/virtio-pci.h | 5 + >>> include/hw/virtio/vdpa-dev.h | 43 ++++ >>> linux-headers/linux/vhost.h | 7 + >>> 8 files changed, 629 insertions(+) >>> create mode 100644 hw/virtio/vdpa-dev-pci.c >>> create mode 100644 hw/virtio/vdpa-dev.c >>> create mode 100644 include/hw/virtio/vdpa-dev.h >>> >> > > .
On Mon, May 30, 2022 at 12:16 PM Longpeng (Mike, Cloud Infrastructure Service Product Dept.) <longpeng2@huawei.com> wrote: > > Hi guys, > > Ping...Any other comments? Will go through this and try to provide some acks soon. Thanks > > 在 2022/5/14 12:11, Longpeng(Mike) 写道: > > From: Longpeng <longpeng2@huawei.com> > > > > Hi guys, > > > > With the generic vDPA device, QEMU won't need to touch the device > > types any more, such like vfio. > > > > We can use the generic vDPA device as follow: > > -device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-X > > Or > > -M microvm -m 512m -smp 2 -kernel ... -initrd ... -device \ > > vhost-vdpa-device,vhostdev=/dev/vhost-vdpa-x > > > > I've done some simple tests on Huawei's offloading card (net, 0.95). > > > > Changes v5 -> v6: > > Patch 2: > > - Turn to the original approach in the RFC to initialize the > > virtio_pci_id_info array. [Michael] > > https://lore.kernel.org/all/20220105005900.860-2-longpeng2@huawei.com/ > > Patch 3: > > - Fix logical error of exception handler around the post_init. > > [Stefano] > > - Fix some coding style warnings. [Stefano] > > Patch 4: > > - Fix some coding style warnings. [Stefano] > > > > Changes v4 -> v5: > > Patch 3: > > - remove vhostfd [Jason] > > - support virtio-mmio [Jason] > > > > Changes v3 -> v4: > > v3: https://www.mail-archive.com/qemu-devel@nongnu.org/msg877015.html > > - reorganize the series [Stefano] > > - fix some typos [Stefano] > > - fix logical error in vhost_vdpa_device_realize [Stefano] > > > > Changes v2 -> v3 > > Patch 4 & 5: > > - only call vdpa ioctls in vdpa-dev.c [Stefano, Longpeng] > > - s/VQS_NUM/VQS_COUNT [Stefano] > > - check both vdpa_dev_fd and vdpa_dev [Stefano] > > Patch 6: > > - move all steps into vhost_vdpa_device_unrealize. [Stefano] > > > > Changes RFC -> v2 > > Patch 1: > > - rename 'pdev_id' to 'trans_devid' [Michael] > > - only use transitional device id for the devices > > listed in the spec [Michael] > > - use macros to make the id_info table clearer [Longpeng] > > - add some modern devices in the id_info table [Longpeng] > > Patch 2: > > - remove the GET_VECTORS_NUM command [Jason] > > Patch 4: > > - expose vdpa_dev_fd as a QOM preperty [Stefan] > > - introduce vhost_vdpa_device_get_u32 as a common > > function to make the code clearer [Stefan] > > - fix the misleading description of 'dc->desc' [Stefano] > > Patch 5: > > - check returned number of virtqueues [Stefan] > > Patch 6: > > - init s->num_queues [Stefano] > > - free s->dev.vqs [Stefano] > > > > > > Longpeng (Mike) (4): > > linux-headers: Update headers to Linux 5.18-rc6 > > virtio: get class_id and pci device id by the virtio id > > vdpa: add vdpa-dev support > > vdpa: add vdpa-dev-pci support > > > > hw/virtio/Kconfig | 5 + > > hw/virtio/meson.build | 2 + > > hw/virtio/vdpa-dev-pci.c | 102 ++++++++++ > > hw/virtio/vdpa-dev.c | 377 +++++++++++++++++++++++++++++++++++ > > hw/virtio/virtio-pci.c | 88 ++++++++ > > hw/virtio/virtio-pci.h | 5 + > > include/hw/virtio/vdpa-dev.h | 43 ++++ > > linux-headers/linux/vhost.h | 7 + > > 8 files changed, 629 insertions(+) > > create mode 100644 hw/virtio/vdpa-dev-pci.c > > create mode 100644 hw/virtio/vdpa-dev.c > > create mode 100644 include/hw/virtio/vdpa-dev.h > > >
© 2016 - 2025 Red Hat, Inc.