Re: [PATCH v10 0/5] add generic vDPA device support

2022-12-20 Thread Michael S. Tsirkin
On Mon, Dec 05, 2022 at 04:49:38PM +0800, Longpeng(Mike) wrote:
> From: Longpeng 
> 
> Hi guys,
> 
> With the generic vDPA device, QEMU won't need to touch the device
> types any more, such like vfio.

Fails build:
Warning, treated as error:
/scm/qemu/docs/system/devices/vhost-vdpa-generic-device.rst:document isn't 
included in any toctree




> 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
> 
> Changes v10 -> v9:
> - optimize the doc [Jason]
> 
> Changes v9 -> v8:
> - rename vhost-vdpa-device.rst to vhost-vdpa-generic-device.rst [Jason, 
> Stefano]
> - emphasize the vhost-vDPA generic device in doc [Jason]
> 
> Changes v8 -> v7:
> - add migration blocker. [Michael]
> 
> Changes v6 -> v7:
> (v6: https://mail.gnu.org/archive/html/qemu-devel/2022-05/msg02821.html)
> - rebase. [Jason]
> - add documentation . [Stefan]
> 
> 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-longpe...@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) (5):
>   virtio: get class_id and pci device id by the virtio id
>   vdpa: add vdpa-dev support
>   vdpa: add vdpa-dev-pci support
>   vdpa-dev: mark the device as unmigratable
>   docs: Add generic vhost-vdpa device documentation
> 
>  .../devices/vhost-vdpa-generic-device.rst |  66 +++
>  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 
>  include/hw/virtio/vdpa-dev.h  |  43 ++
>  include/hw/virtio/virtio-pci.h|   5 +
>  8 files changed, 688 insertions(+)
>  create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst
>  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




[PATCH v10 0/5] add generic vDPA device support

2022-12-05 Thread Longpeng(Mike)
From: Longpeng 

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

Changes v10 -> v9:
- optimize the doc [Jason]

Changes v9 -> v8:
- rename vhost-vdpa-device.rst to vhost-vdpa-generic-device.rst [Jason, 
Stefano]
- emphasize the vhost-vDPA generic device in doc [Jason]

Changes v8 -> v7:
- add migration blocker. [Michael]

Changes v6 -> v7:
(v6: https://mail.gnu.org/archive/html/qemu-devel/2022-05/msg02821.html)
- rebase. [Jason]
- add documentation . [Stefan]

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-longpe...@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) (5):
  virtio: get class_id and pci device id by the virtio id
  vdpa: add vdpa-dev support
  vdpa: add vdpa-dev-pci support
  vdpa-dev: mark the device as unmigratable
  docs: Add generic vhost-vdpa device documentation

 .../devices/vhost-vdpa-generic-device.rst |  66 +++
 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 
 include/hw/virtio/vdpa-dev.h  |  43 ++
 include/hw/virtio/virtio-pci.h|   5 +
 8 files changed, 688 insertions(+)
 create mode 100644 docs/system/devices/vhost-vdpa-generic-device.rst
 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