Skip to content

Bus control framework

Gaetan Rivet dpdk-dev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 8 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8bus: rename scan policy as probe policydrivers/bus/pci/pci_common.c lib/librte_eal/common/eal_common_devargs.c lib/librte_eal/common/include/rte_bus.h+10 -100 replies
2/8bus: introduce opaque control frameworklib/librte_eal/common/eal_common_bus.c lib/librte_eal/common/include/rte_bus.h+55 -05 replies
3/8bus: remove probe mode configuration structuredrivers/bus/pci/pci_common.c lib/librte_eal/common/eal_common_devargs.c lib/librte_eal/common/include/rte_bus.h+1 -200 replies
4/8bus: add probe mode setterlib/librte_eal/common/eal_common_bus.c lib/librte_eal/common/eal_common_options.c lib/librte_eal/common/include/rte_bus.h+44 -132 replies
5/8bus/pci: implement ctrl operatordrivers/bus/pci/include/rte_bus_pci.h drivers/bus/pci/pci_common.c+52 -10 replies
6/8bus: add IOVA mode as a ctrl operationlib/librte_eal/bsdapp/eal/rte_eal_version.map lib/librte_eal/common/eal_common_bus.c lib/librte_eal/common/include/rte_bus.h +1 more+35 -250 replies
7/8bus/pci: implement IOVA mode getterdrivers/bus/pci/bsd/pci.c drivers/bus/pci/include/rte_bus_pci.h drivers/bus/pci/linux/pci.c +2 more+35 -220 replies
8/8bus: remove redundant IOVA mode getterlib/librte_eal/common/include/rte_bus.h+9 -240 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH v1 0/8] Bus control framework

Probing policy was introduced in the previous release as a configuration item. It was thus added to the generic bus structure, breaking its ABI.

In this release, the IOVA mode can be read from a bus to configure the EAL. This new configuration element also broke the bus ABI when it was added.

As new operators had to be implemented for the probe policy item, these patches were developed to help mitigate this issue.

This control framework allows to expand the rte_bus API without breaking its ABI. It is meant to be used with configuration elements that may only be valid for a few buses, while the others would remain untouched and unaware of the evolution.

A central control operator is used, similarly to the working of rte_flow API in the ether layer. Each driver thus chooses to expose a set of operators relevant to its implementation. The caller is then free to use those if they are available.

Both Probe mode and IOVA mode operators are implemented for the PCI bus.

This patchset depends on:

Move PCI away from the EAL
http://dpdk.org/ml/archives/dev/2017-August/073512.html

Gaetan Rivet (8):
bus: rename scan policy as probe policy
bus: introduce opaque control framework
bus: remove probe mode configuration structure
bus: add probe mode setter
bus/pci: implement ctrl operator
bus: add IOVA mode as a ctrl operation
bus/pci: implement IOVA mode getter
bus: remove redundant IOVA mode getter

 drivers/bus/pci/bsd/pci.c                       |   9 +-
 drivers/bus/pci/include/rte_bus_pci.h           |  12 +--
 drivers/bus/pci/linux/pci.c                     |  20 ++--
 drivers/bus/pci/pci_common.c                    |  53 +++++++++-
 drivers/bus/pci/private.h                       |  13 +++
 lib/librte_eal/bsdapp/eal/rte_eal_version.map   |   1 -
 lib/librte_eal/common/eal_common_bus.c          |  57 +++++++++--
 lib/librte_eal/common/eal_common_devargs.c      |   8 --
 lib/librte_eal/common/eal_common_options.c      |  17 +---
 lib/librte_eal/common/include/rte_bus.h         | 127 ++++++++++++++++--------
 lib/librte_eal/linuxapp/eal/rte_eal_version.map |   1 -
 11 files changed, 222 insertions(+), 96 deletions(-)
Signature · 1 line
2.1.4