[dpdk-dev] [PATCH v3 00/14] vDPA API and framework rework

Maxime Coquelin maxime.coquelin at redhat.com
Mon Jun 29 11:02:23 CEST 2020



On 6/26/20 4:47 PM, Adrian Moreno wrote:
> 
> 
> 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 <amorenoz at redhat.com>
> 

Thanks,

Applied to dkdk-next-virtio/master.

Maxime



More information about the dev mailing list