On 6/26/20 4:04 PM, Maxime Coquelin wrote:
> This series aims to rework the vDPA framework and
> its API to better fit into the DPDK device model
> and also be more easily consumable by applications.
>
> Main changes are creating a device class for vDPA,
> which enables applications to iterate vDPA devices
> in a generic way:
>
> RTE_DEV_FOREACH(dev, "class=vdpa", it) {...}
>
> Also the notion of vDPA device ID is replaced
> with both application & drivers using the
> rte_vdpa_device as reference. Doing that also
> made possible to store devices references into
> a linked list instead of a static array. Last
> patch makes the rte_vdpa_device structure
> content opaque to the applications, creating
> a clear barrier between application visible
> API and drivers visble ones.
>
> The first two patches fixes issues in some
> busses iterators, causing segmentation faults
> when iterating only on a device class.
>
> While reviewing, if you notice further possible
> improvements, please let me know. Target is to
> remove the experimental tag from vDPA APIs in
> next LTS release.
>
> Thanks to David for giving me some ideas of
> improvements!
>
> Changes since v3:
> -----------------
> - Fix double lock in unregister API (Adrian)
> - Apply Acked-by's
>
> Changes since v2:
> -----------------
> - Remove useless new line in error messages (Adrian)
> - Use strncmp fo dev name comparisons (Adrian)
> - Apply Adrian Acked-by's
>
> Changes since v1:
> -----------------
> - Rebase on top of net-next
> - Use rte_pci_addr_cmp() instead of comparing pci dev pointers (Gaëtan)
> - Use proper types for calculating device ID (Gaëtan)
>
> Maxime Coquelin (14):
> bus/dpaa: fix null pointer dereference
> bus/fslmc: fix null pointer dereference
> vhost: introduce vDPA devices class
> vhost: make vDPA framework bus agnostic
> vhost: replace device ID in vDPA ops
> vhost: replace vDPA device ID in Vhost
> vhost: replace device ID in applications
> vhost: remove useless vDPA API
> vhost: use linked-list for vDPA devices
> vhost: introduce wrappers for some vDPA ops
> examples/vdpa: use new wrappers instead of ops
> examples/vdpa: remove useless device count
> vhost: remove vDPA device count API
> vhost: split vDPA header file
>
> drivers/bus/dpaa/dpaa_bus.c | 5 +
> drivers/bus/fslmc/fslmc_bus.c | 5 +
> drivers/vdpa/ifc/ifcvf_vdpa.c | 87 ++++----
> drivers/vdpa/mlx5/mlx5_vdpa.c | 134 ++++++------
> drivers/vdpa/mlx5/mlx5_vdpa.h | 5 +-
> examples/vdpa/main.c | 149 +++++++-------
> lib/librte_vhost/Makefile | 3 +-
> lib/librte_vhost/meson.build | 3 +-
> lib/librte_vhost/rte_vdpa.h | 188 +++++------------
> lib/librte_vhost/rte_vdpa_dev.h | 147 +++++++++++++
> lib/librte_vhost/rte_vhost.h | 20 +-
> lib/librte_vhost/rte_vhost_version.map | 11 +-
> lib/librte_vhost/socket.c | 48 ++---
> lib/librte_vhost/vdpa.c | 275 +++++++++++++++----------
> lib/librte_vhost/vhost.c | 19 +-
> lib/librte_vhost/vhost.h | 9 +-
> lib/librte_vhost/vhost_user.c | 28 +--
> 17 files changed, 634 insertions(+), 502 deletions(-)
> create mode 100644 lib/librte_vhost/rte_vdpa_dev.h
>
Besides the wrong patch version:
Acked-by: Adrián Moreno <amore...@redhat.com>
--
Adrián Moreno