[PATCH v3 00/10] add generic vDPA device support

Longpeng(Mike) via posted 10 patches 2 years, 1 month ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220319072012.525-1-longpeng2@huawei.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
hw/virtio/Kconfig            |   5 +
hw/virtio/meson.build        |   2 +
hw/virtio/vdpa-dev-pci.c     | 101 +++++++++
hw/virtio/vdpa-dev.c         | 384 +++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c       |  77 +++++++
hw/virtio/virtio-pci.h       |   5 +
include/hw/virtio/vdpa-dev.h |  43 ++++
linux-headers/linux/vhost.h  |   7 +
8 files changed, 624 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
[PATCH v3 00/10] add generic vDPA device support
Posted by Longpeng(Mike) via 2 years, 1 month ago
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,vdpa-dev=/dev/vhost-vdpa-X

I've done some simple tests on Huawei's offloading card (net, 0.95)
and vdpa_sim_blk (1.0);

The kernel part:
  https://lkml.org/lkml/2022/3/14/1636  

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) (10):
  virtio: get class_id and pci device id by the virtio id
  update linux headers
  vdpa: add the infrastructure of vdpa-dev
  vdpa-dev: implement the instance_init/class_init interface
  vdpa-dev: implement the realize interface
  vdpa-dev: implement the unrealize interface
  vdpa-dev: implement the get_config/set_config interface
  vdpa-dev: implement the get_features interface
  vdpa-dev: implement the set_status interface
  vdpa-dev: mark the device as unmigratable

 hw/virtio/Kconfig            |   5 +
 hw/virtio/meson.build        |   2 +
 hw/virtio/vdpa-dev-pci.c     | 101 +++++++++
 hw/virtio/vdpa-dev.c         | 384 +++++++++++++++++++++++++++++++++++
 hw/virtio/virtio-pci.c       |  77 +++++++
 hw/virtio/virtio-pci.h       |   5 +
 include/hw/virtio/vdpa-dev.h |  43 ++++
 linux-headers/linux/vhost.h  |   7 +
 8 files changed, 624 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
Re: [PATCH v3 00/10] add generic vDPA device support
Posted by Stefano Garzarella 2 years, 1 month ago
On Sat, Mar 19, 2022 at 03:20:02PM +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,vdpa-dev=/dev/vhost-vdpa-X
>
>I've done some simple tests on Huawei's offloading card (net, 0.95)
>and vdpa_sim_blk (1.0);

The whole seems almost okay, I left you some comments, but for the next 
version maybe it's better to reorganize the series differently.

Instead of adding vdpa-dev and vdpa-dev-pci incrementally, with stub 
functions and untestable parts, I would make a patch that adds vdpa-dev 
in full and then one that adds vdpa-dev-pci.
The first 2 patches on the other hand are okay, maybe patch 2 won't be 
needed since I think we will sync the headers after the 7.0 release, but 
is better to keep it for now to simplify the review.

Thanks,
Stefano
RE: [PATCH v3 00/10] add generic vDPA device support
Posted by longpeng2--- via 2 years, 1 month ago

> -----Original Message-----
> From: Stefano Garzarella [mailto:sgarzare@redhat.com]
> Sent: Monday, March 28, 2022 11:12 PM
> To: Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
> <longpeng2@huawei.com>
> Cc: stefanha@redhat.com; mst@redhat.com; cohuck@redhat.com;
> pbonzini@redhat.com; Gonglei (Arei) <arei.gonglei@huawei.com>; Yechuan
> <yechuan@huawei.com>; Huangzhichao <huangzhichao@huawei.com>;
> qemu-devel@nongnu.org
> Subject: Re: [PATCH v3 00/10] add generic vDPA device support
> 
> On Sat, Mar 19, 2022 at 03:20:02PM +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,vdpa-dev=/dev/vhost-vdpa-X
> >
> >I've done some simple tests on Huawei's offloading card (net, 0.95)
> >and vdpa_sim_blk (1.0);
> 
> The whole seems almost okay, I left you some comments, but for the next
> version maybe it's better to reorganize the series differently.
> 
> Instead of adding vdpa-dev and vdpa-dev-pci incrementally, with stub
> functions and untestable parts, I would make a patch that adds vdpa-dev
> in full and then one that adds vdpa-dev-pci.

Ok, will do in next version.

> The first 2 patches on the other hand are okay, maybe patch 2 won't be
> needed since I think we will sync the headers after the 7.0 release, but
> is better to keep it for now to simplify the review.
> 

Yes, that's also my original intent. Thanks.

> Thanks,
> Stefano