[dpdk-dev] [PATCH v4 0/4] net/mlx: make rdma-core optional at run-time
adrien.mazarguil at 6wind.com
Tue Jan 30 16:34:50 CET 2018
A problem encountered with Mellanox PMDs and frequently reported by DPDK
application developers and Linux distribution package maintainers is their
dependency on rdma-core components, namely libibverbs, libmlx4, and libmlx5.
For best performance in applications, DPDK is normally built as a collection
of library archives (.a files), whose external dependencies are inherited
through rte.app.mk during link.
When these PMDs are built-in, any binary DPDK package, whether DPDK itself
or derived applications, always have to pull rdma-core. This dependency is
not obvious and may be missed during the packaging of any intermediate layer
between DPDK itself and the end application.
While still required during compilation, this series trades this hard
dependency for an optional one, dynamically loaded at run-time through
It supersedes Shachar's previous work on the same topic  using a
different approach in order to preserve symbol versioning and address
the remaining issues.
- Addressed remaining compilation issue against MLNX_OFED due to missing
function definitions in mlx5.
- Fixed sign of errno code returned by glue functions when counters are not
- Rebased on dpdk-next-net-mlx.
- Modified patches to generate mlx4/mlx5 glue objects as independent
libraries to install on the target system (they are not generated at run
time anymore) in order to address security concerns.
- As a consequence, glue libraries generation is now disabled by default and
binary distributions must take care of properly packaging them if enabled.
- Rebased on dpdk-next-net-mlx.
- Rely on CONFIG_RTE_LIBRTE_MLX_DLOPEN_DEPS instead of
CONFIG_RTE_BUILD_SHARED_LIB to enable this mode, so it can be overridden
- Fixed -lmlx5 -libibverbs leftovers in rte.app.mk.
- Minor fixes for indentation and unnecessary includes in mlx5.
Adrien Mazarguil (3):
net/mlx4: move rdma-core calls to separate file
net/mlx4: spawn rdma-core dependency plug-in
net/mlx5: spawn rdma-core dependency plug-in
Nelio Laranjeiro (1):
net/mlx5: move rdma-core calls to separate file
config/common_base | 2 +
doc/guides/nics/mlx4.rst | 13 ++
doc/guides/nics/mlx5.rst | 13 ++
drivers/net/mlx4/Makefile | 30 +++
drivers/net/mlx4/mlx4.c | 84 +++++++--
drivers/net/mlx4/mlx4_ethdev.c | 3 +-
drivers/net/mlx4/mlx4_flow.c | 32 ++--
drivers/net/mlx4/mlx4_glue.c | 275 ++++++++++++++++++++++++++++
drivers/net/mlx4/mlx4_glue.h | 80 ++++++++
drivers/net/mlx4/mlx4_intr.c | 10 +-
drivers/net/mlx4/mlx4_mr.c | 7 +-
drivers/net/mlx4/mlx4_rxq.c | 53 +++---
drivers/net/mlx4/mlx4_txq.c | 17 +-
drivers/net/mlx5/Makefile | 30 +++
drivers/net/mlx5/mlx5.c | 92 +++++++---
drivers/net/mlx5/mlx5_ethdev.c | 7 +-
drivers/net/mlx5/mlx5_flow.c | 92 +++++-----
drivers/net/mlx5/mlx5_glue.c | 352 ++++++++++++++++++++++++++++++++++++
drivers/net/mlx5/mlx5_glue.h | 106 +++++++++++
drivers/net/mlx5/mlx5_mr.c | 7 +-
drivers/net/mlx5/mlx5_rxq.c | 54 +++---
drivers/net/mlx5/mlx5_txq.c | 22 ++-
drivers/net/mlx5/mlx5_vlan.c | 13 +-
mk/rte.app.mk | 8 +
24 files changed, 1217 insertions(+), 185 deletions(-)
create mode 100644 drivers/net/mlx4/mlx4_glue.c
create mode 100644 drivers/net/mlx4/mlx4_glue.h
create mode 100644 drivers/net/mlx5/mlx5_glue.c
create mode 100644 drivers/net/mlx5/mlx5_glue.h
More information about the dev