From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adrien Mazarguil Subject: [PATCH v1 0/4] net/mlx: make rdma-core optional at run-time Date: Thu, 25 Jan 2018 00:24:58 +0100 Message-ID: <20180124223625.1928-1-adrien.mazarguil@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Nelio Laranjeiro , dev@dpdk.org, Marcelo Ricardo Leitner To: Shahaf Shuler Return-path: Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by dpdk.org (Postfix) with ESMTP id 9D05F7CEF for ; Thu, 25 Jan 2018 00:25:11 +0100 (CET) Received: by mail-wr0-f195.google.com with SMTP id 36so5785224wrh.1 for ; Wed, 24 Jan 2018 15:25:11 -0800 (PST) Content-Disposition: inline List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 dlopen(). It supersedes Shachar's previous work on the same topic [1] using a different approach in order to preserve symbol versioning and address the remaining issues. [1] http://dpdk.org/ml/archives/dev/2017-December/085090.html 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 drivers/net/mlx4/Makefile | 41 +++++ drivers/net/mlx4/mlx4.c | 115 ++++++++++-- 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 | 41 +++++ drivers/net/mlx5/mlx5.c | 127 ++++++++++--- drivers/net/mlx5/mlx5_ethdev.c | 7 +- drivers/net/mlx5/mlx5_flow.c | 71 ++++---- drivers/net/mlx5/mlx5_glue.c | 328 ++++++++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_glue.h | 100 +++++++++++ drivers/net/mlx5/mlx5_mac.c | 1 + drivers/net/mlx5/mlx5_mr.c | 7 +- drivers/net/mlx5/mlx5_rss.c | 1 + drivers/net/mlx5/mlx5_rxmode.c | 1 + drivers/net/mlx5/mlx5_rxq.c | 54 +++--- drivers/net/mlx5/mlx5_rxtx.c | 1 + drivers/net/mlx5/mlx5_rxtx.h | 1 + drivers/net/mlx5/mlx5_rxtx_vec.c | 1 + drivers/net/mlx5/mlx5_txq.c | 22 +-- drivers/net/mlx5/mlx5_vlan.c | 2 +- mk/rte.app.mk | 2 +- 27 files changed, 1221 insertions(+), 179 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 -- 2.11.0