mbox series

[v2,00/15] add virtio_blk device support to vdpa/ifc

Message ID 1643103437-118618-1-git-send-email-andy.pei@intel.com (mailing list archive)
Headers show
Series add virtio_blk device support to vdpa/ifc | expand


Andy Pei Jan. 25, 2022, 9:37 a.m. UTC
This patch set add virtio_blk device support to vdpa/ifc driver.
With a lot of similarities, I re-use part of vdpa/ifc driver.
Distinguish the virtio net and blk device by device id, and implement 
specific features and ops.
Add example to vdpa to support virtio_blk device.
To support blk device live migration, some modification to vhost lib.
Perform dev_conf op only under VHOST_USER_SET_VRING_CALL msg.

 Fix some coding style issue.

Andy Pei (15):
  vdpa/ifc: add support for virtio blk device
  vhost: add vdpa ops for blk device
  vdpa/ifc: add blk ops for ifc device
  vdpa/ifc: add vdpa interrupt for blk device
  vdpa/ifc: add blk dev sw live migration
  example/vdpa:add vdpa blk support in example
  usertools: add support for virtio blk device
  vdpa/ifc: set_vring_state op is mandatory, add set_vring_state for blk
  vdpa/ifc: add some log at VDPA launch before qemu connect
  vdpa/ifc: read virtio max_queues from hardware
  vdpa: add config space change interrupt register and handle for
  vdpa/ifc: add is_blk flag to ifcvf_hw, and init is_blk during probe
  vdpa/ifc/base: for blk device, live migration register is different
    from net device
  vdpa/ifc: make sure hardware last_avail_idx and last_used_idx is the
    same when blk device pause
  vhost: make sure each queue callfd is configured

 drivers/vdpa/ifc/base/ifcvf.c    |  42 +++-
 drivers/vdpa/ifc/base/ifcvf.h    |  29 ++-
 drivers/vdpa/ifc/ifcvf_vdpa.c    | 520 ++++++++++++++++++++++++++++++++++++---
 examples/vdpa/Makefile           |   2 +-
 examples/vdpa/main.c             |   8 +
 examples/vdpa/meson.build        |   1 +
 examples/vdpa/vdpa_blk_compact.c | 150 +++++++++++
 examples/vdpa/vdpa_blk_compact.h | 117 +++++++++
 examples/vdpa/vhost_user.h       | 189 ++++++++++++++
 lib/vhost/vdpa_driver.h          |   8 +-
 lib/vhost/vhost_user.c           |  14 ++
 usertools/dpdk-devbind.py        |   8 +
 12 files changed, 1034 insertions(+), 54 deletions(-)
 create mode 100644 examples/vdpa/vdpa_blk_compact.c
 create mode 100644 examples/vdpa/vdpa_blk_compact.h
 create mode 100644 examples/vdpa/vhost_user.h