[dpdk-dev] [PATCH v2 00/14] vDPA API and framework rework
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Jun 24 14:26:44 CEST 2020
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 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
--
2.26.2
More information about the dev
mailing list