From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by dpdk.org (Postfix) with ESMTP id C17161B1CA for ; Fri, 26 Jan 2018 15:19:08 +0100 (CET) Received: by mail-wm0-f65.google.com with SMTP id x4so35379937wmc.0 for ; Fri, 26 Jan 2018 06:19:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=S9RH300B72qxqDpX4FXIgHEYlYES85zqiNCarOUNXcY=; b=iBSJa1JVqQaUy02P6X9wunrXBHJfJEotX/S0mW05cGtg1fXfYTfueokmNBVyUs3e5G gJ85mKcKyh1s2ZtYHJDpLiElitskgyRBssgIBwry6BgPbx6DfPWJoz3j+Renyq9A9DQB H938wt+lLMoHBsRwMX/lmxKzjEqZdpK4ojAUDks64Il1PlLFCy/X3+DoY5wCFnxVz6OH T4pRX5LW6hNgSgZJ5DarbuvAo8v3g1knhtcwuRg5NKYYL1VEQxjcKzifcnfSM72QCl8A Mx/VhJwNLjHojt7ZZGWEhr/0em+u5GAZk4PUnBW0wbXjvQHenIzHHJSlq1DR1Osp3sah vPlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=S9RH300B72qxqDpX4FXIgHEYlYES85zqiNCarOUNXcY=; b=rpfUBmCHNIUmJJACQ5/73kSXCgYlb2LRAi/YX/Q9K78bmy0BaD9kGxbOnlL7pyfEjV Mfi8Vke/90H+qFm8PWKZz6eN/7n6Y1U/SyezCL9n4jktUit++isnWW1LYckZ3dDFVzIH 7iR92CfsvvHnB/HNndRmBp8lSF6TOCK//jfAbrWHnD2r3gftscEhmptsQD/dt4/WvksG Q/iXNkFslJJZQ328tW67Lp3zDMLnLWcj2bWWJWRwTmbZLUfMFPBc2fnBS8ZgLqx2pcRF 2BqaA4jqOnhHFegeSRXbrpwcwgea1CehLH/devzlnLWSvpedhNPVgNcqGS4DwxGt/tjZ QdMw== X-Gm-Message-State: AKwxytfz5gDJZasQRTsW6poPPQ01mck50K0CCvdLKjUOE5+ZXFftIKld IaOgqbaCDxUvxt42782WWvNu4g== X-Google-Smtp-Source: AH8x225vUJ3fDreT/osA6umkcJ4IELsGUwtFV4gSHVqoG9eyCqHlHDVuXLCiZKdaX8UCOnVU9n6XNw== X-Received: by 10.80.206.88 with SMTP id k24mr35184060edj.153.1516976348480; Fri, 26 Jan 2018 06:19:08 -0800 (PST) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id z11sm1784752edh.94.2018.01.26.06.19.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 Jan 2018 06:19:07 -0800 (PST) Date: Fri, 26 Jan 2018 15:18:55 +0100 From: Adrien Mazarguil To: Shahaf Shuler Cc: Nelio Laranjeiro , dev@dpdk.org, Marcelo Ricardo Leitner Message-ID: <20180126141215.30395-1-adrien.mazarguil@6wind.com> References: <20180124223625.1928-1-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180124223625.1928-1-adrien.mazarguil@6wind.com> X-Mailer: git-send-email 2.11.0 Subject: [dpdk-dev] [PATCH v2 0/4] net/mlx: make rdma-core optional at run-time X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jan 2018 14:19:08 -0000 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 v2 changes: - Rebased on dpdk-next-net-mlx. - Rely on CONFIG_RTE_LIBRTE_MLX[45]_DLOPEN_DEPS instead of CONFIG_RTE_BUILD_SHARED_LIB to enable this mode, so it can be overridden if necessary. - 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 | 42 +++++ 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 | 42 +++++ drivers/net/mlx5/mlx5.c | 123 +++++++++++--- drivers/net/mlx5/mlx5_ethdev.c | 7 +- drivers/net/mlx5/mlx5_flow.c | 92 +++++------ drivers/net/mlx5/mlx5_glue.c | 321 ++++++++++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_glue.h | 99 +++++++++++ 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, 1265 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 -- 2.11.0