From mboxrd@z Thu Jan 1 00:00:00 1970 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) 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:mime-version:content-disposition; bh=7Whxr3hLx5lKvtjztI+gu41xxNAqPFlyquZ6qrp70V0=; b=DIM7IyHxvyZoyW3NE9jY1YrLJhVGgbbqHxBHsiG0m57Lhf9zmSUmXpb4ZNU1KEADi8 JWtNJDNf5YjKmML9xNnZcT4lq7mjHWs6HfXqIl2qDbaY1NgkaGBzjW++MlUsVJairxgp mTdLbVGfudi8nf7H1ZL4NFiDPhYoRYauPHjLaalm5C14eK8U6vMYAN/ouAxUCfWzqyF8 JJoQqLpgSFYaOGKY0eVYtSeJlJFRnNELch+PuozPP4JbwnCCxSl/kzmJaJD/841+oJCJ s7v/da6V52kjKxqk4GZayiv0Kk/UO8C6w1Y6IL8hJotV0NLQKd839griXHoLdyyf8WOF Nl3w== 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:mime-version :content-disposition; bh=7Whxr3hLx5lKvtjztI+gu41xxNAqPFlyquZ6qrp70V0=; b=V7VglvAkYRt9r75HXYW+iy8SQ4jIBqaUkVlnK1yGYPolOnex92CzGC2YPeFvpWYhmb mpOP9xlQ6pD57IROCRLiN1fko1LKsp3+W6tg67LDDvDUSz28aD46IPE7taFTEE0AAHiT EMcBG0ZgKfUKGh2planPLWWFNTFNixpCzZIbgAH6VzW+ddqLRoaI+6yorhDcR1npW3LB 0PRdCv/Kr+qgMcBsqfb3I34MMUKMfZrFeLkB+kSvXY3W9nOAFZGgCYmD5SS3tfsfhs6W 3fFxiASPu+eDMDRGmgq4wEB41vAmlKV2IIVvVeXs5JpcCuYeAPTkQimRZQd+CjJXBneL wCWQ== X-Gm-Message-State: AKwxytdzOZ2ArGHHPswKicd54ieVh/Dr4rTCxQGtG69dBMfqBRgboUCP W1T5QYusovCBwy/Cc9UhOTzNStIi X-Google-Smtp-Source: AH8x227QvLygcstpH9KYOWtJxhAN+0rCYjoQKzJ6sg0CjBGGyqwUjhJzp+fy8JssNDXruUyXTAshdw== X-Received: by 10.223.192.139 with SMTP id d11mr6572196wrf.260.1516836311360; Wed, 24 Jan 2018 15:25:11 -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 s25sm6672209wra.54.2018.01.24.15.25.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Jan 2018 15:25:10 -0800 (PST) Date: Thu, 25 Jan 2018 00:24:58 +0100 From: Adrien Mazarguil To: Shahaf Shuler Cc: Nelio Laranjeiro , dev@dpdk.org, Marcelo Ricardo Leitner Message-ID: <20180124223625.1928-1-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Mailer: git-send-email 2.11.0 Subject: [dpdk-dev] [PATCH v1 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: Wed, 24 Jan 2018 23:25:11 -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 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